首页 > 解决方案 > 使用 Azure AD 的用户管理器

问题描述

我有一个带有 Azure AD 的 ASP.NET Core 3.0 MVC Web 应用程序。我希望能够使用用户管理器向此应用程序添加角色。

我想要的是使用 Azure AD 进行身份验证,获取该用户并向他添加角色。

我无法这样做。我不想使用 Azure b2c 或 b2b,因为这不是我想要的。我真的没希望了。谢谢你的帮助。

标签: c#azureauthenticationasp.net-core-mvcazure-active-directory

解决方案


我认为您需要在应用程序中定义角色。以下是从官方文章中复制的内容。

来自 AAD: SaaS 提供商在应用程序清单中声明应用程序角色。例如,这是应用程序的清单条目:

"appRoles": [
  {
    "allowedMemberTypes": [
      "User"
    ],
    "description": "Creators can create Surveys",
    "displayName": "SurveyCreator",
    "id": "1b4f816e-5eaf-48b9-8613-7923830595ad",
    "isEnabled": true,
    "value": "SurveyCreator"
  },
  {
    "allowedMemberTypes": [
      "User"
    ],
    "description": "Administrators can manage the Surveys in their tenant",
    "displayName": "SurveyAdmin",
    "id": "c20e145e-5459-4a6c-a074-b942bbd4cfe1",
    "isEnabled": true,
    "value": "SurveyAdmin"
  }
],

从您的客户端: 使用应用程序角色管理器的角色使用这种方法,应用程序角色根本不会存储在 Azure AD 中。相反,应用程序将每个用户的角色分配存储在自己的数据库中——例如,使用 ASP.NET Identity 中的 RoleManager 类。

好处:

  • 该应用程序可以完全控制角色和用户分配。

缺点:

  • 更复杂,更难维护。无法使用 Azure AD 安全组来管理角色分配。将用户信息存储在应用程序数据库中,在添加或删除用户时,它可能与租户的 Azure AD 目录不同步。

在此处查看更多详细信息。


推荐阅读