【发布时间】:2021-08-06 22:56:50
【问题描述】:
我有下一个组件:
- RP-1(由 Ws-Fed、WIF 连接)
- RP-2(通过 SAML、Federation Provider 连接,实际上是另一个 ADFS)
- MY-ADFS(ADFS Server 2019 作为主要 STS)
- MY-IP(单独的身份提供者网络服务,身份服务器 4)
因此,当我从 RP-1(Ws-Fed) 发出一个单独的请求时,一个简单的 Ws-Fed 注销就形成了一个对 ADFS 的请求:
GET https:/MY-ADFS/adfs/ls/
- wtrealm:https://RP-1.com/
- wa:wsignout1.0
- 回复:https://RP-1.com/logout/
下一个 ADFS 重定向到 IP:
GET https://MY-IP/WsFederation
- wa:wsignout1.0
- 回复:https://MY-ADFS/adfs/ls/?redirectContextId=2dd581d2-6e02-4476-915b-a581e3c855d4
因此,用户从 ADFS 和 IP 清除会话。 - 正如预期的那样。
但是,如果在注销之前已转换到 SAML RP 并且 SAML 会话处于活动状态,那么在退出 ADFS 时会出现错误:
MSIS7055:并非所有 SAML 会话参与者都正确注销。这是 建议关闭浏览器。
为了解决这个问题,我将 SAML 依赖方信任中的注销端点 (URL) 配置为:
https:/RP-2/adfs/ls/?wa=wsignout1.0
使用 POST 绑定。在这些更改之后,错误消失了。但是现在 ADFS 不再使注销重定向到 IP,而是将 SAML 注销重定向到 RP-2:
POST https://RP-2/adfs/ls/?wa=wsignout1.0
- SAMLRequest:PHNhbWxwOkxvZ291dFJl
结果,我没有切换到 IP,而是停留在 RP-2(ADFS 也是)页面上,上面写着退出成功。但是,用户在 IP 端仍然有一个活动会话(cookie)。
这里有几个问题:
- 尚不清楚为什么 ADFS 会使用 SAML 活动会话更改调用链。
- 尚不清楚如何排除 SAML 注销重定向,或强制 ADFS 也注销到 IP。
【问题讨论】:
标签: single-sign-on adfs adfs4.0