繁体   English   中英

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

[英]Authorizing by updating Claim with data from database (Blazor WebAssembly ASP.NET Core hosted)

我对使用 Blazor WebAssembly ASP.NET Core 托管的网络应用程序中的身份验证有疑问。 使用的数据库是Azure SQL。

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

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

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

如果这是一种不好的做法,还有其他类似的方法可以使这项工作成功吗?

要使用AuthorizeView role ,角色声明应由您的身份提供者(在您的情况下为 Azure AD)返回。 您的应用程序应该通过询问相应的 scope 来询问这些声明。
根据文档: Permissions and consent in the Microsoft identity platform endpoint配置文件scope 应该返回角色声明。

文档Secure an ASP.NET Core Blazor WebAssembly standalone app with Azure Active Directory解释了如何从 Azure AD 请求范围

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM