如何解决IdentityServer4 SPA到BFF到API的注销问题
我正在构建一个基于IdentityServer4的流程的原型,其中有一个Angular SPA,一个“前端后端”(BFF)ASP.NET Core API和一个后端API服务。 (也是ASP.NET Core)都与https://demo.identityserver.io/ IdP的派生类进行交互。
我的BFF和后端API服务基于“ https://github.com/leastprivilege/AspNetCoreSecuritySamples/tree/aspnetcore3/BFF”中找到的示例
一切顺利,直到我尝试创建用户选择从IdP注销页面注销的方案为止。 BFF服务不会“通知”用户的令牌,并且会话已被撤消/删除,直到令牌过期得多。
我怀疑我应该使用在示例https://github.com/IdentityServer/IdentityServer4/tree/main/samples/Clients/src/MvcHybridBackChannel中找到的过程,其中BFF服务中的cookie事件处理程序实现ValidatePrincipal(CookieValidatePrincipalContext上下文)对IDP进行显式调用,以验证每个ID上的用户令牌请求。
第一个问题:这是完成此任务的正确模式吗?还是我使这个不必要的复杂?
第二个问题:询问IdP“此会话是否仍然有效?”的方法是什么? (这似乎很容易做到!)
谢谢。
解决方法
第一个问题:这是完成此任务的正确模式吗?还是我使这个不必要的复杂?
是的,它是正确的,当您直接从IDP注销时,您需要通知客户端应用程序用户已注销。如果您在BFF上使用cookie,则需要对其执行相同的操作。了解更多here
第二个问题:问IdP“此会话是否仍然有效?”的方法是什么? (这似乎很容易做到!)
Idp不会验证会话或cookie,它会验证令牌。会话/ cookie管理是客户端应用程序的责任。了解更多here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。