在ASP.NET Core上使用IdentityServer4 2.使用ASP.NET MVC5与此用例相关的两个客户端。
编辑:使用cookie进行身份验证,隐式流程。
使用反向通道注销如下: *涉及4个应用程序 - 两个客户端(我们称之为客户端A和客户端B),IdentityServer实例和状态服务器,以跟踪反向信道注销请求。
状态服务器跟踪两个参数:来自id_token的sub
和sid
声明。
我有以下问题:
当用户登录到客户端A,然后导航到客户端B然后在那里执行注销,客户端B退出,但客户端A直到下一个请求被发出。因此,如果用户现在决定使用其他(或相同,无关紧要)帐户登录客户端B,然后导航到客户端A,则客户端A将启动注销,因为有一个未完成的注销请求等待状态服务器,无视用户在此期间再次登录的事实。
有没有人知道如何防止这种情况?
根据您的方案,当您的客户端A执行“延迟注销”时触发对IdSrv的新挑战,最后使用新令牌和新cookie,我看不到任何问题。 重点应该是不要在每个特定的“延迟注销”上触发(循环)单点注销。