通过@azure/msal-angular library in angular 8获取azure ad user group
Get azure ad user group by @azure/msal-angular library in angular 8
我正在使用 @azure/msal-angular。使用 loginRedirect() 重定向到 Microsoft 登录页面,我得到了 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 来决定用户是否有权访问该资源。
更好的方法是组合组和角色。您可以定义一些应用程序角色并将这些角色分配给组。那么群里的用户就会有如下的claim:
{
"roles": ["admin"]
}
然后你可以根据用户的角色来实现你的授权逻辑。
参考https://joonasw.net/view/using-groups-vs-using-app-roles-in-azure-ad-apps and https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps了解更多详情
我正在使用 @azure/msal-angular。使用 loginRedirect() 重定向到 Microsoft 登录页面,我得到了 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 来决定用户是否有权访问该资源。
更好的方法是组合组和角色。您可以定义一些应用程序角色并将这些角色分配给组。那么群里的用户就会有如下的claim:
{
"roles": ["admin"]
}
然后你可以根据用户的角色来实现你的授权逻辑。
参考https://joonasw.net/view/using-groups-vs-using-app-roles-in-azure-ad-apps and https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps了解更多详情