Thinktecture IdentityServer3 - 分布式系统的单点退出
Thinktecture IdentityServer3 - Single sign out for distributed system
我正在构建一个包含多个客户端的分布式系统,这些客户端使用单个身份服务器进行身份验证。这提供了这些客户端之间的单点登录。
当用户从其中一个客户端注销并因此从身份服务器注销时,身份服务器是否可以将该用户从所有其他客户端注销?
我在这里看到过这个问题:Thinktecture identity server 3 Single Sign Out
如果答案是否定的,身份提供者是否必须将用户重定向到与其联合的每个客户端的注销 URL?或者身份服务器是否知道用户已通过哪些客户端进行身份验证并且可以在重定向中进行选择?
编辑:
或者身份提供者是否可以在每个客户端上显式调用服务以使该用户的会话过期?
要实施单点退出,您通常在 STS 上有一个页面,每个 RP 都带有 img 标签:
<div>
<img src="http://rp1.com?wa=wsignoutcleanup1.0" />
<img src="http://rp2.com?wa=wsignoutcleanup1.0" />
</div>
还有一个计时器或一段 JS,用于在加载所有图像时重定向。
STS 可能记得也可能不记得用户在哪个 RP 上登录。在您未登录时请求 wsingoutcleanup 没什么大不了的。
此处提供更多信息:
- http://www.tuomistolari.net/blog/2014/11/29/sso-with-windows-identity-foundation-part-vi-single-sign-off
- http://www.wiktorzychla.com/2011/05/wif-ws-federation-and-single-sign-out.html
话虽这么说,但我不知道 IdentityServer 中是如何处理的。
我正在构建一个包含多个客户端的分布式系统,这些客户端使用单个身份服务器进行身份验证。这提供了这些客户端之间的单点登录。
当用户从其中一个客户端注销并因此从身份服务器注销时,身份服务器是否可以将该用户从所有其他客户端注销?
我在这里看到过这个问题:Thinktecture identity server 3 Single Sign Out
如果答案是否定的,身份提供者是否必须将用户重定向到与其联合的每个客户端的注销 URL?或者身份服务器是否知道用户已通过哪些客户端进行身份验证并且可以在重定向中进行选择?
编辑:
或者身份提供者是否可以在每个客户端上显式调用服务以使该用户的会话过期?
要实施单点退出,您通常在 STS 上有一个页面,每个 RP 都带有 img 标签:
<div>
<img src="http://rp1.com?wa=wsignoutcleanup1.0" />
<img src="http://rp2.com?wa=wsignoutcleanup1.0" />
</div>
还有一个计时器或一段 JS,用于在加载所有图像时重定向。 STS 可能记得也可能不记得用户在哪个 RP 上登录。在您未登录时请求 wsingoutcleanup 没什么大不了的。
此处提供更多信息:
- http://www.tuomistolari.net/blog/2014/11/29/sso-with-windows-identity-foundation-part-vi-single-sign-off
- http://www.wiktorzychla.com/2011/05/wif-ws-federation-and-single-sign-out.html
话虽这么说,但我不知道 IdentityServer 中是如何处理的。