簡體   English   中英

通過 angular 8 中的@azure/msal-angular 庫獲取 azure 廣告用戶組

[英]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-appshttps: //docs.microsoft.com/en-us/azure/active- 目錄/develop/howto-add-app-roles-in-azure-ad-apps了解更多詳情

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM