2015-02-09 83 views
0

方案:

我有两个应用程序使用pingfederate单点登录服务完成登录。

1.用户尝试登录第一个应用程序,但由于用户未经身份验证,用户被重定向到pingfederate的登录页面(通用登录页面)。用户登录到第一个应用程序。
2.用户尝试登录到第二个应用程序,因为用户已通过单点登录服务进行身份验证pingfederate为应用程序提供必要的信息(设置会话所需的信息)并且用户被重定向到第二个应用程序。从第一个应用程序注销触发时从第二个应用程序自动注销

问题:
当用户从第一个应用程序注销,然后用户成功注销。此时,pingfederate知道所有打开的应用程序,然后发送注销回调。所以它发送注销请求到第二个应用程序。第二个应用程序处理注销请求并清除会话。但用户停留在同一页面上。用户没有被重定向到登录页面

问题:
如何才能实现这一点?

回答

0

方式SLO应该为SP-初始化SLO工作是:

  1. 您在第一SP应用点击注销。

  2. 您被重定向到带有LogoutRequest的IdP。

  3. 然后,IdP将您连续发送给所有其他SP使用 LogoutRequests。其中每一个都必须向IdP提供一个具有状态的SAMLResponse回 。

  4. 对IDP,在接收到最后的状态之后,必须发送用户 /浏览器返回到发起SP和与 最终状态的SAMLResponse,其SP作用在。

在IDP-初始化SLO,它基本上只步骤3

这里的起脚,不过,我觉得得到你的问题的心脏。如果这些SP中的单个“不当行为”(即,不响应或支持SLO)(无需支持SLO),那么如果重定向到它,它将打破注销的“链” ! IdP将重定向到SP,并且浏览器将停留在那里。一旦链条被打破,就没有办法让它重新开始。

我在一年多前的博客文章"SLO - Proceed With Caution"中讨论过这个问题。最终,许多大名鼎鼎的SP不支持SLO,因此没有多少理由这样做 - 它只会给你,作为SAML管理员,一个黑眼睛。或者胃灼热。或两者。

+0

我得到了这个工作流程。同样的事情发生在这里。我的问题不是关于我触发注销的第一个应用程序。我正在谈论第二个应用程序。我看到第二个应用程序服务器记录它收到来自ping federate的注销请求。它会清除会话,然后用指定的“Resume”参数重定向到ping联邦SP,但浏览器上不显示此重定向。对于用户来说,他看起来仍然在同一页面上。 – 2015-02-10 14:09:31

+0

这将取决于SP应用程序 - 那里的日志中是否有任何内容? – 2015-02-10 17:45:55