我有一个使用 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/