【问题标题】:Log user out of multiple IdentityServer clients将用户从多个 IdentityServer 客户端中注销
【发布时间】:2016-11-26 16:17:06
【问题描述】:

我们有一个使用 IdentityServer4 的项目

https://github.com/IdentityServer/IdentityServer4

我们有 3 个域:authadminwww

IdentityServer 在auth 上运行,另外两个是“客户端”。

  • www 使用混合流(cookie)
  • admin 使用隐式流(它是一个 SPA,使用 oidc-client)

我们在auth 上托管了一个登录页面。当用户登录时,他们会被带到www。一些用户被允许访问admin,他们会在导航中看到一个链接。

登录后,当您访问管理员时,您可以看到身份验证自动发生并返回到回调 URL。这一切都很好。

但是,如果我从admin 注销,我仍然可以访问www,反之亦然。理想情况下,我们希望 logout 让用户同时从两个客户端中注销。

这可能吗?


注意:我是这个项目的前端开发人员,所以实际实现它的人可能会在下面的 cmets 中提供更多详细信息。

【问题讨论】:

    标签: asp.net-core identityserver4


    【解决方案1】:

    是的,这是可能的。

    idsrv4 的文档尚未完成 - 但它的工作原理与此类似

    https://identityserver.github.io/Documentation/docsv2/advanced/signout.html

    这是 JS 的签出规范的实现 https://openid.net/specs/openid-connect-session-1_0.html

    ..对于网络应用程序 https://openid.net/specs/openid-connect-frontchannel-1_0.html

    您需要阅读这些文档以了解机制

    【讨论】:

    • 谢谢多米尼克。 oidc-client-js 支持的 iframe check_session_iframe postMessage 方法你知道吗?
    • 我在这里添加了一个问题:github.com/IdentityModel/oidc-client-js/issues/67
    • 即使我正在检查不同客户会话的状态,这项工作是否应该有效?
    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2020-04-10
    • 2021-07-30
    • 2019-11-18
    • 2020-08-06
    • 1970-01-01
    相关资源
    最近更新 更多