从第一个应用程序注销触发器时从第二个应用程序自动注销

时间:2015-02-09 05:35:26

标签: ruby-on-rails logout long-polling pingfederate

情景:

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

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

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

问:
当我们收到注销请求重定向用户到登录页面时,如何实现这一点?

1 个答案:

答案 0 :(得分:0)

SLO应该用于SP-Init SLO的方式是:

  1. 您在FIRST SP应用程序中单击“注销”。

  2. 您将通过LogoutRequest重定向到IdP。

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

  4. IdP在收到最终状态后,必须发送 用户/浏览器返回带有SAMLResponse的原始SP 最终状态,由SP采取行动。

  5. 在IdP-Init SLO中,它基本上只是第3步。

    这是踢球者,但我认为这是你问题的核心。如果这些SP中的一个“行为异常”,即没有响应或支持SLO(没有要求它们支持SLO),那么如果你重定向到它,它将打破注销的“链” ! IdP将重定向到SP,浏览器将保留在那里。一旦链断裂,就无法重新开始。

    我在一年多前的博客"SLO - Proceed With Caution"中讨论了这个问题。最终,由于许多大牌SP没有支持SLO,所以没有太多理由去做 - 它只会让你作为SAML管理员,给你一个黑眼圈。或胃灼热。或两者兼而有之。