【问题标题】:PingFederate SLO: No Logout Service is Configured for this AdapterPingFederate SLO:没有为此适配器配置注销服务
【发布时间】:2011-11-26 02:54:36
【问题描述】:

在我调用单一注销 (SLO) 后,通过在 https://[PingFederate Server Instance]:[Port]/idp/startSLO.ping 上调用“GET”,我的 PingFederate 服务器开始向我的 SP 注销服务发出请求。 [我知道这一点是因为我可以看到它在 Fiddler 中发生。]

但在此过程中,它注意到我显然忘记为我的一个 SP 定义注销服务。

我的问题:

  • 它指的是哪个 SP?
  • 如何解决此错误?

2011-11-25 21:40:16,923 WARN [org.sourceid.servlet.ErrorServlet] 顶级错误(ref#wprmxs):org.sourceid.saml20.adapter.AuthnAdapterException:已调用注销功能,但没有为此适配器配置注销服务。 org.sourceid.websso.profiles.ProcessRuntimeException:org.sourceid.saml20.adapter.AuthnAdapterException:已调用注销功能,但未为此适配器配置注销服务。 在 org.sourceid.websso.profiles.ResumableResponseHandlerBase.resume(ResumableResponseHandlerBase.java:50) 在 org.sourceid.saml20.profiles.idp.HandleLogoutResponse.doIt(HandleLogoutResponse.java:154) 在 org.sourceid.saml20.profiles.idp.HandleLogoutResponse.handleException(HandleLogoutResponse.java:80) 在 org.sourceid.websso.profiles.ResponseHandlerBase.process(ResponseHandlerBase.java:86) 在 org.sourceid.saml20.profiles.ProfileProcessManager.doHandleResponse(ProfileProcessManager.java:92) 在 $ProfileProcessMgmtService_132f8e9ec21.doHandleResponse($ProfileProcessMgmtService_132f8e9ec21.java) 在 org.sourceid.websso.servlet.ProtocolControllerServlet.doIt(ProtocolControllerServlet.java:75) 在 org.sourceid.websso.servlet.ProtocolControllerServlet.process(ProtocolControllerServlet.java:84) 在 org.sourceid.websso.servlet.EnforcerServletBase.checkProcess(EnforcerServletBase.java:59) 在 org.sourceid.websso.servlet.EnforcerServletBase.doGet(EnforcerServletBase.java:84) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 在 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 在 org.mortbay.jetty.servlet.jsr77.Jsr77ServletHolder.handle(Jsr77ServletHolder.java:74) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) 在 org.sourceid.servlet.filter.NoCacheFilter.doFilter(NoCacheFilter.java:46) 在 org.sourceid.servlet.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:53) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) 在 org.sourceid.websso.servlet.ProxyFilter.doFilter(ProxyFilter.java:34) 在 org.sourceid.servlet.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:53) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) 在 org.sourceid.websso.servlet.SessionIdFilter.doFilter(SessionIdFilter.java:67) 在 org.sourceid.servlet.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:53) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) 在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) 在 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 在 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 在 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) 在 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 在 org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) 在 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 在 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) 在 org.mortbay.jetty.Server.handle(Server.java:324) 在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 在 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 在 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) 在 com.pingidentity.appserver.jetty.DynamicSslSocketConnector$SslConnection.run(DynamicSslSocketConnector.java:637) 在 org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) 原因:org.sourceid.saml20.adapter.AuthnAdapterException:已调用注销功能,但未为此适配器配置注销服务。 在 com.pingidentity.adapters.opentoken.IdpAuthnAdapter.logoutAuthN(IdpAuthnAdapter.java:270) 在 org.sourceid.saml20.profiles.idp.AdapterSupport.logoutAuthN(AdapterSupport.java:306) 在 org.sourceid.saml20.profiles.idp.HandleLogoutResponse.doResume(HandleLogoutResponse.java:184) 在 org.sourceid.websso.profiles.ResumableResponseHandlerBase.resume(ResumableResponseHandlerBase.java:46) ... 40 更多

【问题讨论】:

    标签: single-sign-on saml-2.0 pingfederate


    【解决方案1】:

    这是适配器级别的错误,而不是连接错误。您必须验证您的适配器是否配置了注销服务 URL。

    在 PingFederate 管理中,单击“适配器”链接(SP 或 IdP 端),然后选择您正在使用的适配器(我怀疑它是 Open Token 的一个实例)。在其配置中(在 IdP 适配器选项卡或 SP 适配器选项卡 -> 显示高级字段下)检查您的注销服务设置是否具有映射到应用程序会话注销 URL 的值。

    【讨论】:

    • 这意味着我需要为每个应用程序单独的 OpenToken 适配器?
    • 我通过使用<pf-url>/idp/startSLO.ping 作为 OpenToken SP 适配器的注销 URL 来完成这项工作。我们不想将 SLO 发送到联合 IdP,我猜这是在 SP 适配器中注销 URL 的目的。刚刚注意到这个 Q/A 已经 8 年了,我正在使用 PF10 并且遇到了同样的异常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多