Azure AD中的Phantom Group成员身份

时间:2017-07-20 13:04:58

标签: azure azure-active-directory claims-based-identity

我有一个长期运行的应用程序,它使用FederatedAuthentication与Azure AD来管理基于声明的身份。我的应用程序清单设置为列出用户的所有安全组(因此我可以遍历他们所属的组列表)。

在该应用程序中,我有一个用户,该用户是单个顶级组的成员。该群体不是任何其他群体的成员。以前,当用户登录时,只有一个http://schemas.microsoft.com/ws/2008/06/identity/claims/groups值附加到他们的ClaimsPrincipal,正确显示他们所属的单个组。

截至最近(过去几天)我的用户登录时,有两个http://schemas.microsoft.com/ws/2008/06/identity/claims/groups值。其中一个仍然对应于它们所属的组,但是新组件与我的活动目录中的任何可见组的id(或者我可以看到的任何其他对象)都没有匹配:没有应用程序ID,也没有其他用户ID )。

这个幻影群组成员来自何处,有什么方法可以将其删除?

更新 - 应用程序清单中的groupMembershipClaims设置为SecurityGroup(不是All)。

1 个答案:

答案 0 :(得分:1)

在我的测试中,组声明将返回当前用户所属的Groups和DirectoryRoles的集合,结果类似于使用memberOf azure ad graph api:

https://graph.windows.net/myorganization/users/{user_id}/$links/memberOf?api-version

以上api的结果: enter image description here

即使我将groupMembershipClaims设置为SecurityGroup,我也会在我的令牌中获得相同的三个记录(2个组和1个目录角色)。我的帐户是我AAD的全球管理员。如果我将帐户设置为用户目录角色(非管理员角色),那么我只在组声明中获得两个组记录。

使用azure ad graph api,为了获得用户具有直接或传递成员身份的所有组,我们可以调用getMemberGroups函数。

如果您希望群组声明仅返回用户具有直接或可传递成员资格的群组,您可以在AAD userVoice中发送反馈。