我正在构建一个基于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“此会话是否仍然有效?”的方法是什么? (这似乎很容易做到!)
谢谢。