我们有一个使用IdentityServer4的项目
https://github.com/IdentityServer/IdentityServer4
我们有3个域:auth
,admin
和www
IdentityServer在auth
上运行,另外两个是“客户端”。
www
使用混合流(Cookie)admin
使用隐式流程(它是SPA,使用oidc-client)我们在auth
上托管了一个登录页面。当用户登录时,他们将被带到www
。某些用户可以访问admin
,他们会在导航中看到一个链接。
登录后,当您访问管理员时,您可以看到身份验证自动发生并返回到回调URL。一切正常。
但是,如果我从admin
退出,我仍然可以访问www
,反之亦然。理想情况下,我们希望注销一次将用户从两个客户端中注销。
这可能吗?
注意:我是这个项目的前端开发人员,所以实际实施它的人可能会在下面的评论中提供更多详细信息。
答案 0 :(得分: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
您需要阅读这些文档以了解机制