![](/img/trans.png)
[英]How to get user's AAD memberships with @azure/msal-angular
[英]Get azure ad user group by @azure/msal-angular library in angular 8
我正在使用@azure/msal-angular 。 使用 loginRedirect() 重定向到微軟登錄頁面,我得到了帶有 access_token 和組 ID 的響應。 但是我需要組詳細信息來在我的應用程序中實現訪問控制。 獲取組詳細信息是否需要任何額外的配置設置。
我的配置:
MsalModule.forRoot({
clientID: <clientId>,
authority: `https://login.microsoftonline.com/<tenantId>`,
redirectUri: "http://localhost:4200/",
cacheLocation: "localStorage",
popUp: !isIE,
consentScopes: ["user.read", "api://<clientID>/GFS_EClaims_UI"],
storeAuthStateInCookie: false,
postLogoutRedirectUri: "http://localhost:4200/",
protectedResourceMap: protectedResourceMap
})
或要獲取組詳細信息,我是否需要在 loginRedirect() 之后調用 Microsoft graph api?
提前致謝!
您無法從令牌中獲取組詳細信息。 您只能在聲明中獲取如下組 ID:
{
"groups": ["1ce9c55a-9826-4e32-871c-a8488144bb32"]
}
有關訪問令牌中支持的聲明,請參閱https://docs.microsoft.com/en-us/azure/active-directory/develop/access-tokens#claims-in-access-tokens
但是為了控制您的應用程序的訪問,我認為您不需要組詳細信息。 您可以只使用組 ID 來決定用戶是否有權訪問該資源。
更好的方法是結合組和角色。 您可以定義一些應用角色並將角色分配給組。 然后該組中的用戶將擁有如下聲明:
{
"roles": ["admin"]
}
然后您可以根據用戶的角色實現您的授權邏輯。
請參閱https://joonasw.net/view/using-groups-vs-using-app-roles-in-azure-ad-apps和https: //docs.microsoft.com/en-us/azure/active- 目錄/develop/howto-add-app-roles-in-azure-ad-apps了解更多詳情
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.