目前,我正在使用Azure AD作为应用程序的登录名,登录和注销工作正常。但是如何从该登录名获取用户信息,如何在我的应用程序中实现基于角色的身份验证。
答案 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令牌中。您的应用程序必须对其进行解码并基于此进行授权。