通过angular 8中的@azure/msal angular library获取azure ad用户组

通过angular 8中的@azure/msal angular library获取azure ad用户组,angular,azure,azure-ad-graph-api,msal,Angular,Azure,Azure Ad Graph Api,Msal,我正在使用。使用loginRedirect()重定向到microsoft登录页面,我将获得带有access\u令牌和组ID的响应。但我需要组详细信息来在我的应用程序中实现访问控制。是否需要任何额外的配置设置来获取组详细信息 我的配置: MsalModule.forRoot({ clientID: <clientId>, authority: `https://login.microsoftonline.com/<tenantId>`, redirectUri:

我正在使用。使用loginRedirect()重定向到microsoft登录页面,我将获得带有access\u令牌和组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
})
MsalModule.forRoot({
客户ID:,
授权:`https://login.microsoftonline.com/`,
重定向URI:“http://localhost:4200/",
cacheLocation:“本地存储”,
弹出窗口:!伊西,
同意范围:[“user.read”api:///GFS_EClaims_UI"],
storeAuthStateInCookie:错,
postLogoutRedirectUri:“http://localhost:4200/",
protectedResourceMap:protectedResourceMap
})
或者,要获取组详细信息,是否需要在LoginDirect()之后调用Microsoft graph api


提前谢谢

您无法从令牌获取组详细信息。您只能在声明中获得如下组ID:

{
  "groups": ["1ce9c55a-9826-4e32-871c-a8488144bb32"]
}
有关访问令牌中支持的请求,请参阅

但为了控制应用程序的访问,我认为您不需要组详细信息。您可以只使用组ID来决定用户是否具有资源的权限

更好的方法是组合组和角色。您可以定义一些应用程序角色并将这些角色分配给组。那么组中的用户将拥有如下声明:

{
  "roles": ["admin"]
}
然后,您可以根据用户的角色实现授权逻辑


有关更多详细信息,请参阅和。

您无法从令牌获取组详细信息。您只能在声明中获得如下组ID:

{
  "groups": ["1ce9c55a-9826-4e32-871c-a8488144bb32"]
}
有关访问令牌中支持的请求,请参阅

但为了控制应用程序的访问,我认为您不需要组详细信息。您可以只使用组ID来决定用户是否具有资源的权限

更好的方法是组合组和角色。您可以定义一些应用程序角色并将这些角色分配给组。那么组中的用户将拥有如下声明:

{
  "roles": ["admin"]
}
然后,您可以根据用户的角色实现授权逻辑


有关更多详细信息,请参阅和

感谢@tom luo的回复。您的意思是说,在active directory中作为自定义角色添加的角色可以分配给用户,因此我将在身份验证成功响应中获得这些分配的角色,作为令牌中的声明。如果我错了,你能纠正我吗。很抱歉,我是Azure广告认证新手。@saikumar,没错。请参阅关于如何创建应用程序角色的最后一个链接。感谢@tom luo的回复。您的意思是说,在active directory中作为自定义角色添加的角色可以分配给用户,因此我将在身份验证成功响应中获得这些分配的角色,作为令牌中的声明。如果我错了,你能纠正我吗。很抱歉,我是Azure广告认证新手。@saikumar,没错。请参阅关于如何创建应用程序角色的最后一个链接。