我有两个独立的项目:
1.一个ASP.NET核心托管标识提供程序,它使用IdentityServer4和ASP.NET标识
- Blazor WebAssembly应用程序,使用Duende BFF与身份提供程序通信并登录用户
两者都有自己独立的数据库。
到目前为止,我已经能够让两者进行通信,以便Blazor应用程序在确认无人登录时自动重定向到身份提供程序。然后,用户可以登录到身份提供程序,他们将被重定向回Blazor应用程序,在那里显示他们的声明。
Blazor应用程序将需要大量仅与此应用程序相关的用户权限。我打算在Blazor数据库中创建一个单独的用户详细信息表,然后在用户通过身份验证后引用这些权限。
我很难弄明白的是:当身份提供商将用户及其相关声明返回Blazor时,我如何使用这些声明(特别是电子邮件地址声明)在我的Blazor用户详细信息数据库中查找该用户,以便获得他们的权限并将其存储在会话中?或者,我是否应该将这些额外信息存储为附加声明?
1条答案
按热度按时间tez616oj1#
Blazor中的AddOpenIDConnect处理程序提供了各种可以挂钩的事件处理程序,特别是OnTokenValidated事件处理程序。
该处理程序是基于例如接收到的ID-token中的主题(子)声明查找本地用户信息的绝佳机会。
我认为这篇博客文章here提供了一个很好的介绍如何做到这一点。