【问题标题】:how to achieve global Logout for specific SP from IDP side?如何从 IDP 端实现特定 SP 的全局注销?
【发布时间】:2015-06-23 02:33:08
【问题描述】:

我已将 Spring Saml 与我的应用程序集成,并且运行良好。我可以使用 SP 发起的 SSO 和 IDP 发起的 SSO 登录。我还添加了本地注销设置。但我还有一个要求,用户将使用 SP 发起的 SSO 登录。验证成功后,用户将进入 IDP 选择页面(在我的情况下为 ADFS 2.0)并选择一个 SP 并单击从该站点注销。

那时我需要为我的 SP 主页打开的客户端浏览器触发会话终止。此用户的其他 SP 不应受到影响。

有很多与单次注销有关的问题,但我的情况有点不同。我想从全局 IDP 页面退出我的应用程序。虽然我能够在本地注销并且会话正在终止。我已经配置了这个Spring-Saml 文档中给出的所有设置。

【问题讨论】:

    标签: java spring-security saml-2.0 adfs2.0


    【解决方案1】:

    是的,SingleSignOut 存在很多疑问。但我相信您想要的不是标准的单点注销配置文件(第 4.4 段)。而且 ADFS 肯定不会通过反向通道启动注销(第 4.4.3.3 段的 SOAP 绑定。)。

    也许你可以做“非法的”?使用来自 IdP (ADFS) 的 Redirect 或 Post 绑定的 LogoutRequest(因为所有 SP 都应该被选中)。但也许(我怀疑并且没有验证当前的补丁级别)仅在 S2008R2 和 S2012 上的 ADFS 2.0 中。在 S2012R2 上根本没有机会。这是一条死胡同。

    我想从一个应用程序中退出确实没有任何意义。是单点登录!您可以清除本地 SP 登录会话 cookie,并尝试在从 SP 到 IdP 的 AuthnRequest 上使用 ForceAuthn。这会产生所需的效果吗?至少这是标准的。

    【讨论】:

    • 感谢您的回答,我也有同样的印象,即在 SSO 的情况下应该从所有 SP 注销。因此,在这种情况下,如何对所有 SP 进行 singleLogout。
    • SP 应该发送一个 LogoutRequest。发行人将完成其余的工作。
    • 但在我的情况下,IDP 将发送注销请求,然后所有 SP 或一个 SP 会话应该被终止。
    • 正如我所说,最好不要走这条路。但如果我要尝试它,那么我会看看 Microsoft.IdentityServer.Web.UI.IdentityProviderInitiatedSignonPage.SingleLogout()。 IdpInitiatedSignOn.aspx 页面派生自适当的类来调用它。
    猜你喜欢
    • 2015-09-23
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多