3

我正在实现单点注销功能。我的设置是:ASP.NET 依赖方 <-> 依赖方 STS <-> SAML2 STS。SAML2 STS 有用户目录。我将 ADFS 3.0 用于依赖方 STS。ASP.NET 依赖方使用 WS-Federation 协议与依赖方 STS 通信,而依赖方 STS 通过 SAML2 协议与 SAML2 STS 通信。

我试图实现的行为是单点注销功能。当用户从 ASP.NET 应用程序注销时,ASP.NET 应用程序使用 FS-Federation 协议向依赖方 STS 发送注销请求。依赖方 STS 首次使用 SAML2 协议将注销请求转发给 SAML2 STS。但是如果用户立即重新登录并再次注销,则依赖方不会将注销请求转发到 SAML2 STS。用户不会将注销请求转发到 SAML2 STS,而是看到依赖方 STS (ADFS 3.0) 的已注销页面。ADFS 3.0 似乎将 MSISSignoutProtocol cookie 维护了 10 分钟,并且在该 cookie 未过期之前,它不会将注销请求转发到 SAML2 STS。

我该如何解决这个问题?我希望用户在用户注销时始终通过依赖方 STS (ADFS 3.0) 重定向到 SAML2 STS。是否有任何配置可用于覆盖我在 ADFS 3.0 上看到的行为?

4

1 回答 1

0

在您的 Web 应用程序中,注销 URL 设置为什么?要与 ADFS 3.0 一起正常工作,它应该是

https://fs.company.com/adfs/ls/idpinitiatedsignon.aspx

对于 ADFS 2.0,它曾经是

https://fs.company.com/adfs/ls/?wa=wsignout1.0

但这会导致您描述的行为:它设置 MSISSignOutProtocol cookie,然后防止 MSISAuth cookie 被删除并保持会话处于活动状态。

于 2016-12-14T18:29:59.303 回答