如何在打开id连接身份验证后将用户注册到mongodb?

时间:2018-01-09 17:06:26

标签: node.js mongodb azure azure-active-directory

我有一个使用azure-passport-ad编写的后端API(使用oAuth2授权),我的前端angular 5(openId connect),我使用Azure AD进行身份验证,问题是我们的用户将拥有两个角色 "学生","管理员",我如何才能实现角色的差异,idP检索到的令牌是否为我提供了一个具有用户角色类型的字段?

1 个答案:

答案 0 :(得分:0)

您可以在Azure AD中定义角色,如下所示:https://joonasw.net/view/defining-permissions-and-roles-in-aad

要在应用中定义角色,您必须将其在AAD中的清单修改为类似的内容(为简洁起见,其他属性已被删除):

{
  "appRoles": [
    {
      "allowedMemberTypes": [
        "User"
      ],
      "displayName": "Administrator",
      "id": "179c1dc0-4801-46f3-bc0d-35f059da1415",
      "isEnabled": true,
      "description": "Administrators can access advanced features.",
      "value": "admin"
    }
  ]
}

然后,您可以通过Enterprise应用程序/服务主体刀片的“用户和组”选项卡为这些角色分配用户。

发送到您应用的ID令牌将包含如下角色:

{
  "family_name": "User",
  "given_name": "Test",
  "name": "Test User",
  "roles": [
    "admin"
  ]
}

您可以在Passport验证令牌后检查该声明。