通过使用数据库中的数据更新Claim进行授权(Blazor WebAssembly ASP.NET Core托管)



我有一个关于在我的web应用程序中使用Blazor WebAssembly ASP进行身份验证的问题。NET Core托管。使用的数据库是Azure SQL。

我想避免在数据库中存储密码,因此用户只能拥有Microsoft帐户(与项目相关(。

截至目前,用户以Azure AD作为第三方身份验证提供商登录。当重定向回web应用程序时,用户将创建一个声明,该声明仅包括来自Azure的电子邮件。用户被引导到注册页面,其中电子邮件输入被设置为当前用户声明电子邮件。当用户单击注册按钮时,所提供的信息现在存储在数据库中。

问题是,我现在在数据库中有一个用户,但声明仍然只是电子邮件。我希望能够在不同的页面上使用AuthorizeView role标记,因此想知道是否可以使用用户在注册页面中指定的角色更新声明?此时,这些数据仅存储在数据库中。

如果这是一种糟糕的做法,我还有其他类似的方法可以让它发挥作用吗?

若要使用AuthorizeView role,您的身份提供商(在您的情况下为Azure AD(应返回角色声明。您的申请应该通过询问相应的范围来询问这些索赔
根据Microsoft身份平台端点中的文档:权限和同意,配置文件作用域应返回角色声明。

文档保护ASP。NET Core Blazor WebAssembly与Azure Active Directory的独立应用程序解释了如何从Azure AD 请求作用域

最新更新