gpt4 book ai didi

asp.net - IdentityServer4反向 channel 注销问题

转载 作者:行者123 更新时间:2023-12-02 10:48:34 25 4
gpt4 key购买 nike

在 ASP.NET Core 2 上使用 IdentityServer4。使用 ASP.NET MVC5 与此用例相关的两个客户端。

编辑:使用cookie进行身份验证,隐式流程。

使用反向 channel 注销,如下所示:
* 涉及 4 个应用程序 - 两个客户端(我们称之为客户端 A 和客户端 B)、IdentityServer 实例和一个用于跟踪反向 channel 注销请求的状态服务器。

  1. 客户端 A 发起注销,使登录 Cookie 失效。
  2. 客户端用户使用正确的 id_token 被重定向到 IdentityServer 的/account/logout。
  3. IdentityServer 会使登录 Cookie 失效,并为所有已登录客户端调用反向 channel 注销操作。
  4. 客户端 B 的反向 channel 注销操作验证请求并将注销请求通知状态服务器。
  5. 当向客户端 B 发出下一个请求时,该客户端会查询状态服务器并获取有关未完成的注销请求的信息,这会导致其使注销 cookie 无效,从而导致成功注销。<

状态服务器跟踪两个参数:来自 id_token 的 subsid 声明。

我遇到以下问题:

当用户登录到客户端 A,然后导航到客户端 B,然后在那里执行注销时,客户端 B 会注销,但客户端 A 不会注销,直到对其发出下一个请求。因此,如果用户现在决定使用另一个(或相同的,无关紧要)帐户登录客户端 B,然后导航到客户端 A,则客户端 A 将启动注销,因为有一个未完成的注销请求正在等待状态服务器,忽略用户同时再次登录的事实。

有人知道如何防止这种情况吗?

最佳答案

根据您的场景,当您的客户端 A 执行“延迟注销”时,我看不到任何问题,这会触发对 IdSrv 的新挑战,并以新 token 和新 cookie 结束。
要点应该是不要在每个特定的“延迟注销”上触发(循环)单点注销。

关于asp.net - IdentityServer4反向 channel 注销问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52145571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com