.net core 具有.NET Core 3 Azure AD身份验证的自定义角色

.net core 具有.NET Core 3 Azure AD身份验证的自定义角色,.net-core,azure-active-directory,asp.net-identity,.net Core,Azure Active Directory,Asp.net Identity,我有一个功能最低的.NET Core 3 Web应用程序,使用Azure AD进行身份验证,但我正在尝试找出如何在自己的SQL数据库中使用自己的自定义角色进行授权 最后,我希望验证用户,然后从我的数据库中获取他们的关联角色,并从那里创建策略。我不怕研究,但我的搜索并没有找到任何看起来正确的东西。有人能给我指出正确的方向吗?AFAIK最接近您需求的Azure广告功能是应用程序角色 您可以在此处的Microsoft文档上阅读有关它的更多详细信息- 下面是一个相关的代码示例- 简而言之,您将能够定义特

我有一个功能最低的.NET Core 3 Web应用程序,使用Azure AD进行身份验证,但我正在尝试找出如何在自己的SQL数据库中使用自己的自定义角色进行授权


最后,我希望验证用户,然后从我的数据库中获取他们的关联角色,并从那里创建策略。我不怕研究,但我的搜索并没有找到任何看起来正确的东西。有人能给我指出正确的方向吗?

AFAIK最接近您需求的Azure广告功能是应用程序角色

您可以在此处的Microsoft文档上阅读有关它的更多详细信息-

下面是一个相关的代码示例-

简而言之,您将能够定义特定于应用程序Azure广告清单的角色。稍后,您可以从Azure Portal或使用Microsoft Graph API将这些角色分配给用户

"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中(而不是您在问题中提到的SQL数据库)

现在,在登录到web应用程序时,您将使用传入的访问令牌获得作为声明集合的角色

下面是另一个很好的文档,它通过一个示例和使用授权策略进行了解释


如果这些对您的应用程序都没有意义,您可以始终实现一些自定义的东西,并在应用程序数据库中存储角色信息和分配

Azure AD对于在该场景中定义或分配角色没有多大帮助。您需要以自定义方式维护用户及其角色之间的映射。如果有意义,您可以使用RoleManager类