Azure JWT具有属性"hasgroups = true"而不是groups属性对象

Mic*_*leT 3 azure-web-sites azure-active-directory

我有一个Azure Web应用程序与Azure Active Directory身份验证(由adal-angular制作);

在我已设置的应用程序清单中 "groupMembershipClaims": "SecurityGroup"

奇怪的是,在某些日子里,对于一个用户来说,它没有AAD令牌中具有组成员资格对象列表的组声明,而是有一个名为hasgroupsvalue 的属性true.

我能为此做些什么吗?现在我要检查是否有一个属性或另一个属性,然后调用GraphAPI直接成为组成员.

Sac*_*aca 7

hasGroups=true在用户属于"太多组"的情况下返回.我不知道确切的阈值是什么(20?200?),但实际上你需要在你的代码中做的是(伪代码):

if (hasGroups)
  Call the Graph to inquire:
    Either about the full group membership OR 
    About membership to a particular group
else
  Access groups directly from the token
Run Code Online (Sandbox Code Playgroud)

获取用户所属的所有组:

https://graph.windows.net/myorganization/users/{user_id}/$links/memberOf?api-version
Run Code Online (Sandbox Code Playgroud)

查询用户是否属于特定组:

https://graph.windows.net/myorganization/users/{user_id}/isMemberOf?api-version
Run Code Online (Sandbox Code Playgroud)

  • 极限是200,现在是5?我唯一想到的是“不公平” (2认同)