Azure AD JWT在使用本机应用类型登录AAD时缺少“组”节点

Azure AD JWT在使用本机应用类型登录AAD时缺少“组”节点,jwt,azure-active-directory,Jwt,Azure Active Directory,登录到本机应用程序时获取的JWT不会发出登录到Web应用程序时获取的JWT发出的组节点 两个应用程序注册都配置为发出组 groupMembershipClaims:SecurityGroup 这是一个隐式授权场景更新 这适用于任何希望稍后了解解决方案的人 从@LastPredium获得更多信息后,发现有3个独立的应用程序在使用:一个web应用程序SPA、一个基于.NET的本机应用程序和一个web api。第三个应用程序的清单,即web api缺少groupMembershipClaims:Sec

登录到本机应用程序时获取的JWT不会发出登录到Web应用程序时获取的JWT发出的组节点

两个应用程序注册都配置为发出组 groupMembershipClaims:SecurityGroup

这是一个隐式授权场景

更新

这适用于任何希望稍后了解解决方案的人

从@LastPredium获得更多信息后,发现有3个独立的应用程序在使用:一个web应用程序SPA、一个基于.NET的本机应用程序和一个web api。第三个应用程序的清单,即web api缺少groupMembershipClaims:SecurityGroup

底线:即使从本机应用程序获取令牌以访问web api,只要web api的清单配置正确,访问令牌也会包含组声明

这是一个链接,指向@lastJustival跟踪的本机应用程序中存在问题的示例

初步答复

您要检查的用户可能是6个或更多组的一部分。在隐式授权流的情况下,如果完整组声明会将URI片段扩展到URL长度限制之外,Azure AD将向您发送一个超期声明,而不是组声明

所以,您可能会通过诸如hasgroups或groups:src1之类的声明获得一个超龄指标,这取决于令牌的长度是否是一个问题

例如,在单页应用程序SPA的情况下,您将获得hasgroups声明,而在使用ADAL.NET库的基于.NET的本机应用程序的情况下,令牌长度不是一个问题,我看到groups:src用于超龄指示

基本上,您会得到一个提示,即用户是许多组的一部分,当前lot means 6或更多,您必须再打一次电话,以获取有关该用户所属的所有组的信息

Microsoft文档:

更新

这适用于任何希望稍后了解解决方案的人

从@LastPredium获得更多信息后,发现有3个独立的应用程序在使用:一个web应用程序SPA、一个基于.NET的本机应用程序和一个web api。第三个应用程序的清单,即web api缺少groupMembershipClaims:SecurityGroup

底线:即使从本机应用程序获取令牌以访问web api,只要web api的清单配置正确,访问令牌也会包含组声明

这是一个链接,指向@lastJustival跟踪的本机应用程序中存在问题的示例

初步答复

您要检查的用户可能是6个或更多组的一部分。在隐式授权流的情况下,如果完整组声明会将URI片段扩展到URL长度限制之外,Azure AD将向您发送一个超期声明,而不是组声明

所以,您可能会通过诸如hasgroups或groups:src1之类的声明获得一个超龄指标,这取决于令牌的长度是否是一个问题

例如,在单页应用程序SPA的情况下,您将获得hasgroups声明,而在使用ADAL.NET库的基于.NET的本机应用程序的情况下,令牌长度不是一个问题,我看到groups:src用于超龄指示

基本上,您会得到一个提示,即用户是许多组的一部分,当前lot means 6或更多,您必须再打一次电话,以获取有关该用户所属的所有组的信息

Microsoft文档:


我会在所有方面都遇到这个问题。我没有网络应用程序。相同的用户我理解,但令牌长度特别适用于隐式授权流,web应用程序可能不使用隐式授权流。如果您在这两种情况下都使用同一个用户,那么使用工具检查令牌就足够简单了,例如,或者Web应用程序正在使用隐式grantI不获取任何hasGroups节点,也不获取groups:src1节点?另外,如果是一个web应用程序,您可以从中获取组,那么该用户属于多少组?我会在所有方面都遇到这个问题。我没有网络应用程序。相同的用户我理解,但令牌长度特别适用于隐式授权流,web应用程序可能不使用隐式授权流。如果您在这两种情况下都使用同一个用户,那么使用工具检查令牌就足够简单了,例如,或者Web应用程序正在使用隐式grantI不获取任何hasGroups节点,也不获取groups:src1节点?另外,如果您使用web应用返回组,那么该用户属于多少组?