Azure AD 将组声明应用于 ClaimsPrincipal 的顺序是否可靠?

Is the order that Azure AD applies group claims to a ClaimsPrincipal reliable?

我有一个具有多个部门级别的应用程序。用户是代表部门的 AD 组的成员。这个组然后是代表父部门的另一个组的成员,依此类推通过多个级别。

我需要知道整个传递组成员身份链,但我还需要知道用户是哪个组的直接(非传递)成员。

使用 json 清单的 groupMembershipClaims 属性(详见 here)图 API:

http://schemas.microsoft.com/ws/2008/06/identity/claims/groups : {guid-a}
http://schemas.microsoft.com/ws/2008/06/identity/claims/groups : {guid-b}
...

到目前为止,在我们所有的测试中,第一组 {guid-a} 始终是我的用户是直接成员的内部组,后续组始终按升序排列。

我的问题:这个顺序靠谱吗?如果不是,有没有其他方法可以不调用 Graph API 来确定我的许多用户中的哪个组是直接成员?

您可以使用用户的 memberOf 属性 来仅获取该用户是其直接成员的组。这是来自最新 Azure AD Graph REST API documentation.

的屏幕截图

至于声明的顺序,我建议不要编写任何依赖于特定顺序的声明的代码。