使用 REST API 列出 Azure 角色分配

Azure 基于角色的访问控制 (Azure RBAC) 是用于管理 Azure 资源访问权限的授权系统。 若要确定用户、组、服务主体或托管标识有权访问的资源,请列出其角色分配。 本文介绍如何使用 REST API 列出角色分配。

注意

如果你的组织已将管理功能外包给使用 Azure Lighthouse 的服务提供商,则此处将不会显示该服务提供商授权的角色分配。 同样,无论已分配有什么角色,服务提供商租户中的用户都不会看到用户在客户租户中的角色分配。

注意

有关查看或删除个人数据的信息,请参阅 GDPR 的 Azure 数据使用者请求。 有关 GDPR 的详细信息,请参阅 Microsoft 信任中心的 GDPR 部分服务信任门户的 GDPR 部分

先决条件

必须使用以下版本:

  • 2015-07-01 或更高版本
  • 2022-04-01 或更高版本以包含条件

有关详细信息,请参阅 Azure RBAC REST API 的 API 版本

列出角色分配

在 Azure RBAC 中,若要列出访问权限,请列出角色分配。 若要列出角色分配,可以使用其中一个角色分配 Get 或 List REST API。 若要优化结果,请指定一个范围和可选的筛选器。

  1. 从下面的请求开始:

    GET https://management.chinacloudapi.cn/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter={filter}
    
  2. 在 URI 中,将“{scope}”替换为要列出角色分配的范围。

    作用域 类型
    providers/Microsoft.Management/managementGroups/{groupId1} 管理组
    subscriptions/{subscriptionId1} 订阅
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 资源组
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 资源

    在前面的示例中,microsoft.web 是引用应用服务实例的资源提供程序。 同样,可以使用任何其他资源提供程序并指定范围。 有关详细信息,请参阅 Azure 资源提供程序和类型和支持的 Azure 资源提供程序操作

  3. 将“{filter}”替换为筛选角色分配列表时要应用的条件。

    筛选器 说明
    $filter=atScope() 只列出指定范围内的角色分配,而不包括子范围内的角色分配。
    $filter=assignedTo('{objectId}') 列出指定用户或服务主体的角色分配。
    如果用户是具有角色分配的组的成员,则该角色分配也会列出。 此筛选器对于组是可传递的,这意味着如果用户是组的成员,并且该组是具有角色分配的另一个组的成员,则该角色分配也会列出。
    此筛选器仅接受用户或服务主体的对象 ID。 不能传递组的对象 ID。
    $filter=atScope()+and+assignedTo('{objectId}') 列出指定范围内指定用户或服务主体的角色分配。
    $filter=principalId+eq+'{objectId}' 列出指定用户、组或服务主体的角色分配。

以下请求列出订阅范围中指定用户的所有角色分配:

GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()+and+assignedTo('{objectId1}')

下面显示了输出示例:

{
    "value": [
        {
            "properties": {
                "roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
                "principalId": "{objectId1}",
                "principalType": "User",
                "scope": "/subscriptions/{subscriptionId1}",
                "condition": null,
                "conditionVersion": null,
                "createdOn": "2022-01-15T21:08:45.4904312Z",
                "updatedOn": "2022-01-15T21:08:45.4904312Z",
                "createdBy": "{createdByObjectId1}",
                "updatedBy": "{updatedByObjectId1}",
                "delegatedManagedIdentityResourceId": null,
                "description": null
            },
            "id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
            "type": "Microsoft.Authorization/roleAssignments",
            "name": "{roleAssignmentId1}"
        }
    ]
}

后续步骤