我正在构建一个基于IdentityServer4 4的流程原型,其中我有一个角SPA,一个“前端后端”(BFF) ASP.NET核心API,以及一个后端API服务(也包括ASP.NET https://demo.identityserver.io/ IdP ),所有这些都与https://demo.identityserver.io/IdP的派生程序交互。
我的BFF和后端API服务基于在"https://github.com/leastprivilege/AspNetCoreSecuritySamples/tree/aspnetcore3/BFF“中找到的示例。
在我尝试创建用户选择从IdP注销页面注销的场景之前,一切都进行得很顺利。BFF服务在令牌过期之前不会“通知”用户的令牌和会话已被撤销/删除。
我怀疑我应该使用示例ValidatePrincipal(CookieValidatePrincipalContext中找到的流程,其中BFF服务中的cookie事件处理程序实现了https://github.com/IdentityServer/IdentityServer4/tree/main/samples/Clients/src/MvcHybridBackChannel上下文),从而对IdP进行显式调用,以验证每个请求上的用户令牌。
第一个问题:这是实现这一目标的正确模式吗?还是我让这件事变得不必要的复杂了?
第二个问题:问IdP“这个会话是否仍然有效”的方法是什么?(这似乎是一件容易做到的事情!)
提前谢谢你。
发布于 2020-08-14 23:08:33
第一个问题:这是实现这一目标的正确模式吗?还是我让这件事变得不必要的复杂了?
是的,它是正确的,当您从IDP直接注销时,您需要通知客户端应用程序,用户已经签署了。如果您在BFF上使用cookie,则需要对其进行同样的操作。阅读更多这里
第二个问题:问IdP“这个会话是否仍然有效”的方法是什么?(这似乎是一件容易做到的事情!)
Idp不是验证会话或cookie,而是验证令牌。会话/cookie管理是客户端应用程序的责任。阅读更多这里
https://stackoverflow.com/questions/63417615
复制相似问题