根据 Azure Active Directory 检查角色成员资格

时间:2021-02-07 19:10:16

标签: azure azure-active-directory rbac

我正在通过利用新的 Microsoft Graph (Rest) API 实现一个服务器到服务器 RBAC 与 AAD。 我可以根据 checkMemberGroups resource

成功验证和检查用户组成员身份

我正在尝试将其提升到一个新的水平 - 而不是检查组成员身份,我想检查用户的角色。角色是基于 this guide 定义的。

我创建了角色,将其分配给用户,然后尝试使用 checkMemberObjects API 检查角色分配:

<块引用>

检查指定用户对象的组或目录角色列表中的成员身份。

这没有用;我将角色 ID 传递给 API,但响应包含一个空数组 - 表明分配没有发生。

然而,当我尝试使用 appRoleAssignments resource 为用户列出角色分配时,我确实在那里看到了角色的 id。

我的问题:我是否不恰当地使用了 checkMemberObjects(我是否在这里混合了不同的域)?如果是这样-
检查用户是否具有特定角色的正确方法是什么?

我正在使用 rest API。

1 个答案:

答案 0 :(得分:1)

checkMemberObjects 用于检查用户是否在组中。如果它具有应用程序角色,则不会。

恐怕没有 Microsoft Graph 端点可以检查用户是否具有特定的应用程序角色。

但是您可以使用 List appRoleAssignments granted to a user 来检查它作为解决方法。

列出所有应用角色分配,并使用 contains()IndexOf() 等检查响应中是否包含特定应用角色 ID。