从Azure AD进行用户身份验证后,某些用户不会出现所有声明(组详细信息)

问题描述 投票:0回答:1

我在Azure的App Service中托管了.Net Web应用程序。用户正在Azure AD的帮助下进行身份验证。应用程序正在重定向到登录页面并在身份验证之后。但是,在返回到应用程序后(经过身份验证),登录用户的所有索偿详细信息(组ID /详细信息)都没有出现,从而导致了授权问题(借助组ID /详细信息,我们正在授权用户访问特定页面)

这里是问题,对于某些用户,所有组详细信息都将出现,并且他们正在访问所需的页面。至于其他一些用户,即使该用户是授权成员(例如admin组成员),由于没有声明/组详细信息,他仍然无法看到该页面。原因为何,解决方案是什么。

azure azure-active-directory authorization
1个回答
0
投票

令牌的大小受到限制,在某些情况下,这些声明会被遗漏。如果使用隐式授予,则限制非常严格。但是,即使在授权码授予中,也有200个组ID的限制。

如果违反此限制,则不会发送任何ID。由于这可能会隐藏问题:)

一种解决方案是在发生这种情况时从Graph API查询用户组成员身份等。您可以通过查找“ hasgroups”声明来检测到这一点。目前,您无法决定应以令牌发送哪些组。如果将来我们可以选择仅发送分配给该应用程序的组的ID等,这将大大有助于该用例。

请参阅文档以获取更多信息:https://docs.microsoft.com/en-us/azure/active-directory/develop/access-tokens#payload-claims

© www.soinside.com 2019 - 2024. All rights reserved.