【问题标题】:IdentityServer4 SPA to BFF to API Logout ProblemIdentityServer4 SPA 到 BFF 到 API 注销问题
【发布时间】: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


【解决方案1】:

第一个问题:这是完成此任务的正确模式吗?还是我让这变得不必要的复杂?

是的,它是正确的,当您直接从 IDP 注销时,您需要通知客户端应用用户已注销。如果你在 BFF 上使用 cookie,你需要为它做同样的事情。阅读更多here

第二个问题:向 IdP 询问“此会话是否仍然有效?”的方法是什么? (这似乎应该很容易做到!)

Idp 不验证会话或 cookie,它验证令牌。会话/cookie 管理是客户端应用程序的责任。阅读更多here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-08
    • 2018-08-13
    • 2019-04-21
    • 2016-06-26
    • 1970-01-01
    • 2017-09-01
    • 2021-06-15
    • 1970-01-01
    相关资源
    最近更新 更多