node.js - open id connect认证后如何将用户注册到mongodb?

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

我有一个使用 azure-passport-ad 用 nodejs 编写的后端 API(使用 oAuth2 授权),我的前端 Angular 5(openId connect),并且我使用 Azure AD 进行身份验证,问题是我们的用户将拥有两个角色 “student”、“admin”,我怎样才能区分角色,idP 检索到的 token 是否为我提供了一个包含用户所拥有的角色类型的字段?

最佳答案

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

要在应用程序中定义角色,您必须将 AAD 中的 list 修改为类似以下内容(为简洁起见,删除了其他属性):

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

然后,您可以通过企业应用程序/服务主体边栏选项卡的“用户和组”选项卡将用户分配给这些角色。

发送到您的应用程序的 ID token 将包含角色,如下所示:

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

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

关于node.js - open id connect认证后如何将用户注册到mongodb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48173293/

相关文章:

node.js - ES6 : Module '"mongoose"' has no default export

node.js - JavaScript : Empty array after foreach loop

mongodb - 如何计算mongodb中字符串的总和?

azure - Helm with Azure 结果为 401 Unauthorized

Android客户端自定义登录Azure Mobile服务(.NET后端)

node.js - docker node app总是在使用nodemon更改文件时崩溃

javascript - 引用外部脚本和资源而不是下载它们 "locally"到您的服务器是否安全?

node.js - 使用node.js和passport进行身份验证后重定向到上一页

java - 使用 AND,OR 条件在 Java 中查询 MongoDB

azure - 找到有针对我的评论的工作项目?