我正在尝试通过使用Metrogistics / laravel-azure-ad-oauth社交插件来获得Azure AD的角色。
我从Azure收到了姓名,电子邮件和azure_id。但是我无法获得用户角色。
user: array:12 [
"@odata.context" => "https://graph.microsoft.com/v1.0/$metadata#users/$entity"
"businessPhones" => []
"displayName" => "Test4"
"givenName" => "Test4"
"jobTitle" => null
"mail" => null
"mobilePhone" => null
"officeLocation" => null
"preferredLanguage" => null
"surname" => null
"userPrincipalName" => "test4@xyz.com"
"id" => "xyz"
]
可以从Azure获得角色。 我的设置:
答案 0 :(得分:0)
根据我的研究,定义的AppRole将在id_token中返回。有关更多详细信息,请参阅official documentation和document
关于如何获取用户的ID令牌,可以使用Azure AD OAuth 2.0 authorization code flow来实现它。在这里,我使用邮递员来获取access_token和id_token:
然后我可以获取id_token
通过分析id令牌,您可以获得用户的角色:
关于如何为用户分配应用角色,请参考以下步骤
答案 1 :(得分:0)
您拥有的是app role,顾名思义,它们属于应用程序。仅从Microsoft Graph查找用户对象不会提供这些对象。
是的,如另一个答案所示,它们将在用户登录后以id_token的形式提供给应用程序。
要独立于应用获取内容,请使用Get appRoleAssignment Api。