【问题标题】:Phantom Group Membership in Azure ADAzure AD 中的幻影组成员身份
【发布时间】:2017-07-20 13:04:58
【问题描述】:

我有一个长期运行的应用程序,它使用 FederatedAuthentication 和 Azure AD 来管理基于声明的身份。我的应用程序清单设置为列出用户的所有 SecurityGroups(这样我就可以浏览他们所属的组列表)。

在该应用程序中,我有一个用户是单个顶级组的成员。该组不是任何其他组的成员。以前,当用户登录时,只有一个 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)。

【问题讨论】:

  • 用户是否已添加到 AAD 中的另一个租户?或者他们最近是否开始使用带有自己用户名的其他产品,例如 VSTS?
  • @RickvandenBosch 最近登录了一个新应用。未分配给我知道的另一个租户(我可以检查)。其他租户的成员资格会以组的形式出现吗?
  • 不确定,只是想了解所有细节;)
  • 如果您的应用清单中有 groupMemberShipClaims: "All",它也可能是 Office 365 组/邮件列表。
  • 谢谢@juunas,这很有用。他并没有故意被添加到这样的列表中(当然也没有在这个目录中,它根本没有连接到 Office365 - 它是纯 Azure),但他可能已经将 SSO 用于另一个应用程序。

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


【解决方案1】:

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

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

以上 api 的结果:

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

使用 azure ad graph api ,要获取用户具有直接或传递成员资格的所有组,我们可以调用 getMemberGroups 函数。

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

【讨论】:

  • 这是有道理的。该用户最近确实成为了该目录的全局管理员。不过,这不是一个组,所以我看不出这会产生什么影响(而且他的角色在一个专门称为“组”的列表中返回似乎有点错误 - 而memberOf 功能似乎是正确的) .事实上,他不需要成为管理员,所以我应该能够轻松修复它。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 2015-03-07
  • 1970-01-01
  • 2016-10-26
相关资源
最近更新 更多