【发布时间】:2020-08-14 17:39:54
【问题描述】:
我正在构建一个基于 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 context) 以显式调用 IdP 以验证每个请求上的用户令牌。
第一个问题:这是完成此任务的正确模式吗?还是我让这变得不必要的复杂?
第二个问题:向 IdP 询问“此会话是否仍然有效”的方法是什么? (这似乎应该很容易做到!)
提前谢谢你。
【问题讨论】:
-
既然你能够将 IdentityServer BFF 实现到 Angular,你能看看my question吗?非常感谢您的经验。
标签: asp.net-core identityserver4