【问题标题】:How do you handle the logout process for applications federated with ADFS?您如何处理与 ADFS 联合的应用程序的注销过程?
【发布时间】:2020-12-02 22:39:37
【问题描述】:

我的环境由与 ADFS 2016 联合的各种应用程序 (RP) 组成。我会说 90% 的用户群登录使用基于表单的身份验证,因为他们从公共设备访问这些应用程序。

这是我们的场景。

Bob 转到应用程序 A,被重定向到 ADFS 以获取令牌,然后 Bob 使用基于表单的身份验证向 ADFS 进行身份验证,然后 ADFS 为应用程序 A 授予令牌,然后 Bob 使用该令牌登录到应用程序 A。Bob 然后注销从应用程序 A 中删除了 Bob 与应用程序 A 的会话。然而,在没有关闭浏览器的情况下,Bob 再次访问应用程序 A,而不是提示再次使用基于表单的身份验证到 ADFS 进行身份验证,而是重定向到应用程序 A。这是一个问题,因为如果这些其他用户没有关闭他们的浏览器,它可能会无意中允许用户使用其他用户的帐户登录。

我们一直在通过确保我们所有的 RP 都配置有“要求用户在每次登录时提供凭据”来规避这一点。你们也用这个吗?

一些 SAML RP 被配置为始终将用户重定向到 https://adfs.server.com/adfs/ls/?wa=wsignout1.0,根据 MS 的说法,这应该仅用于 WS-Fed 应用程序,如 here 和 [此处][2] 所述。您是否在将用户重定向到该 URL 时遇到任何问题?

还有一些 RP 的 Endpoint 选项卡配置了 SAML Logout Endpoints,而另一些则没有。这些 Logout Endpoints 是否需要填写,还是仅适用于尚未从他们这边完成的应用程序?

【问题讨论】:

    标签: single-sign-on saml adfs2.0 adfs3.0 adfs4.0


    【解决方案1】:

    SAML 注销消息应发送到 SAML 端点(即https://adfs.server.com/adfs/ls/)。依赖方必须配置 SAML 注销端点以接收 SAML 注销消息。

    依赖方应向https://adfs.server.com/adfs/ls/ 发送签名的注销消息。 ADFS 应向依赖方的 SAML 注销端点返回签名的注销响应。

    如果此 SAML 注销交换成功,则表单经过身份验证的用户应从 ADFS 注销。如果注销不成功,我建议查看 ADFS 事件日志以了解更多详细信息。

    【讨论】:

    • 哇,这很有意义。在这种情况下,RP 将对其进行签名,而我们(IDP)将使用 SP 提供的证书(公钥)对其进行验证。注销实际上已经签名了吗?我问,因为我们的大多数 SP 默认情况下不这样做。
    • SAML 规范说应该对注销消息进行签名。根据我使用 ADFS 的经验,这些消息必须经过签名。
    猜你喜欢
    • 2011-09-19
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多