Azure AD用户登录

时间:2019-01-01 13:07:44

标签: angular6 azure-active-directory identityserver4

目前,我正在使用Azure AD作为应用程序的登录名,登录和注销工作正常。但是如何从该登录名获取用户信息,如何在我的应用程序中实现基于角色的身份验证。

1 个答案:

答案 0 :(得分:0)

您必须根据Azure AD发送给应用程序的JWT令牌中存在的声明进行授权。如果要为用户分配角色并根据其授权,则必须修改应用程序清单并为应用程序添加所需的自定义角色(管理员,管理员,用户)。

样本清单:

"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就会将其作为声明“角色”发送到JWT令牌中。您的应用程序必须对其进行解码并基于此进行授权。

您可以在此doc中了解有关如何配置此内容的更多信息,以及令牌here中存在的声明的更多信息。