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