IdentityServer4多客户端注销

时间:2019-08-29 14:33:26

标签: c# identityserver4

使用混合流和反向通道注销,并在用户退出一个会话时尝试单次注销多个用户会话。

如果使用相同的浏览器,则用户SSO没问题,一个客户端重定向到IDSRV4注销页面,IDSRV4使会话无效,向客户端发送反向通道注销请求,并向会话cookie发送“ idsrv.session” “将从浏览器中删除。然后,客户端2发出请求,并注意到没有身份验证cookie,并重定向到IDSRV4进行登录。

当我在不同的浏览器中打开Client 1和Client 2时,Single Sign On无法工作,并且用户必须在每个浏览器中输入凭据(这是预期的,因为浏览器不共享cookie)。

但是,我希望用户注销IDSRV4时仍然能够使用户的所有会话无效,并将通道注销请求发送回每个客户端

我尝试在每个客户端中实现LogoutSessionManager / CookieEventHandler(这是反向通道在同一浏览器中的工作方式)。但是,IDSRV4永远不会将注销请求发送到第二个客户端,而仅发送发起注销请求的客户端。但是,由于注销请求删除了“ idsrv.session” cookie,因此另一个客户端实际上已“注销”。

我曾考虑过按照this SO IDSRV4问题中的描述来实现状态服务器,但尚未开始,因为“懒惰退出”和触发挑战的术语对我来说是新的,而我还没有对其进行了足够的研究。

任何人和所有帮助或想法都将受到赞赏。谢谢

0 个答案:

没有答案