【问题标题】:Authorizing by updating Claim with data from database (Blazor WebAssembly ASP.NET Core hosted)通过使用数据库中的数据更新声明进行授权(Blazor WebAssembly ASP.NET Core 托管)
【发布时间】:2020-07-27 04:28:36
【问题描述】:

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

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

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

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

如果这是一种不好的做法,是否有任何其他类似的方法可以使这项工作?

【问题讨论】:

    标签: authentication asp.net-core blazor webassembly claims-authentication


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-27
      • 2023-03-17
      • 1970-01-01
      • 2019-12-20
      • 2020-12-14
      • 2021-06-15
      • 2019-07-01
      • 1970-01-01
      相关资源
      最近更新 更多