Blazor WebAssembly + Identity Server - 在成功验证后检索额外的用户权限(声明?)

问题描述 投票:0回答:1

我有两个独立的项目:

  1. 使用 IdentityServer4 和 ASP.NET Identity 的 ASP.NET Core 托管身份提供者
  2. 使用 Duende BFF 与身份提供者通信并让用户登录的 Blazor WebAssembly 应用程序

两者都有自己独立的数据库。

到目前为止,我已经能够让两者进行通信,以便 Blazor 应用程序在重新发现没有人登录时自动重定向到身份提供者。然后用户可以登录身份提供者并将他们重定向回 Blazor显示他们的声明的应用程序。

Blazor 应用程序将需要大量仅与此应用程序相关的用户权限。我打算做的是在 Blazor 数据库中有一个单独的用户详细信息表,然后在用户通过身份验证后引用这些权限。

我正在努力弄清楚的是:当身份提供者将用户返回到 Blazor 并提供相关声明时,我如何使用这些声明(特别是电子邮件地址声明)在我的 Blazor 用户中查找用户详细信息数据库,以便我可以获得他们的权限并将它们存储在会话中?或者我应该将这些额外信息存储为附加声明吗?

asp.net identityserver4 blazor-webassembly
1个回答
0
投票

Blazor 中的 AddOpenIDConnect 处理程序提供了各种可以挂接的事件处理程序,尤其是 OnTokenValidated 事件处理程序。

这个处理程序是一个绝佳的机会,可以根据接收到的 ID 令牌中的主题(子)声明查找本地用户信息。

我认为这篇博文 here 很好地介绍了如何去做。

为了补充这个答案,我写了一篇更详细的博客文章 关于这个主题:在 ASP.NET Core 中调试 OpenID Connect 声明问题

© www.soinside.com 2019 - 2024. All rights reserved.