0

我有下一个组件:

  • 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 的请求:

获取 https://MY-ADFS/adfs/ls/

接下来 ADFS 会重定向到 IP:

获取https://MY-IP/WsFederation

  • :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:

发布 https://RP-2/adfs/ls/?wa= wsignout1.0

  • SAML 请求:PHNhbWxwOkxvZ291dFJl

结果,我没有切换到 IP,而是停留在 RP-2(ADFS 也是)页面上,上面写着退出成功。但是,用户在 IP 端仍然有一个活动会话(cookies)。

这里有几个问题:

  • 目前尚不清楚为什么 ADFS 会使用 SAML 活动会话更改调用链。
  • 目前尚不清楚如何排除 SAML 注销重定向,或强制 ADFS 也注销到 IP。
4

1 回答 1

0

您还必须在 IP(身份提供者)端添加注销 URL,以确保通过 ADFS 从 SaaS 应用程序注销生成的 SAML 令牌转发到身份提供者,并在 IP 授权提供者端更新以注销. 这样,浏览器上的 cookie 将被更新并顺利退出。

请在身份提供者端找到以下可能的步骤来更新注销 URL:-

  1. 打开身份验证提供程序工作区。
  2. 找到注销 URL。
  3. 将 URL 更新为与 ADFS 服务器中配置的相同的“https://RP-2/adfs/ls/?wa=wsignout1.0”。
  4. 保存您的更改。

至于您的第一个问题,为什么 ADFS 会使用 SAML 活动会话更改调用链,这是因为必须从系统中删除 cookie 和缓存才能成功注销请求,因此注销时记录的注销时间会在 SaaS 更新应用程序结束,因此,建议关闭浏览器让它也在系统中更新。

因此,建议您在不同的浏览器窗口中打开这两个 RP 信任应用程序,因为它们都是为不同的令牌提供程序配置的。

请参阅以下主题以获取更多信息:-

您如何处理与 ADFS 联合的应用程序的注销过程?

感谢您,

于 2021-08-09T10:58:18.810 回答