![](/img/trans.png)
[英]Microsoft Azure AD oauth identify user's role and group (orgunit) which user belong to
[英]Get the user role from Azure AD by Laravel azure ad oauth
我正在嘗試使用 Metrogistics/laravel-azure-ad-oauth socialiate 插件從 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 獲取角色。 我的設置:
根據我的研究,定義的 AppRole 將在 id_token 中返回。 更多詳情請參考官方文檔和文檔
關於如何獲取用戶的id token,可以使用Azure AD OAuth 2.0授權碼流來實現。 這里我使用postman獲取access_token和id_token:
然后我可以得到 id_token
通過分析id token,可以得到用戶的角色:
關於如何為用戶分配應用角色,請參考以下步驟
您擁有的是一個應用程序角色,顧名思義,它們屬於一個應用程序。 僅僅從 Microsoft Graph 中尋找用戶的對象不會提供這些。
是的,如另一個答案所示,它們將在用戶登錄后以 id_token 的形式提供給應用程序。
要獨立於應用程序獲取這些內容,請使用Get appRoleAssignment Api。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.