0

我目前与使用 SAML2.0 和 ADFS2.0 的客户端集成。我们是服务提供者,他们是身份提供者。

与单点登录相关的一切都按预期工作,但单点注销有时会表现得很奇怪。对于单次注销,我们发送一个 SAML 注销请求,并期望返回一个 SAML 注销响应来处理我们应用程序的注销。这通常是这种情况,并且一切都正确处理。

但是,我发现了一个问题,即我们使用 SAML 注销请求启动注销,但随后 ADFS 服务器以注销请求作为响应。

重现步骤:

  1. SSO 进入 ADFS 帐户 #1
  2. 在同一浏览器选项卡上,使用 ADFS 帐户 #2 再次启动 SSO。
  3. 在同一浏览器选项卡上,为 ADFS 帐户 #2 启动 SLO。

查看 SAML Tracer,我发现 ADFS 服务器发回的注销请求与 ADFS 帐户 #1 相关联。这怎么可能?我们发送的用于启动 SLO 的注销请求仅包含 ADFS 帐户 #2 的详细信息,与帐户 #1 没有任何关系。

这是正常的 ADFS SLO 行为吗?对我来说,为什么 ADFS 服务器会使用注销请求响应注销请求,并且最重要的是,对于不同的用户,这是没有意义的。我无法用其他 IDP 重新创建此问题。

除了这种情况,SLO 完全可以正常工作,并且会为我们发送的每个注销请求发送一个注销响应。

4

2 回答 2

0

这可能是因为 SP 的错误实现启动了 SLO。理想情况下,IDP 应该向所有其他共享会话但不启动 SP 的 SP 发送注销请求。

于 2021-07-06T17:01:45.303 回答
0

在 ADFS 中,SLO 通常意味着注销您登录的所有内容。

很好的图表描述了这一点。

于 2020-12-21T22:17:54.070 回答