다음을 통해 공유

使用 REST API 列出 Azure 角色分配

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

注意

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

注意

若要了解如何查看或删除个人数据,请参阅 GDPR 的常规数据主体请求GDPR 的 Azure 数据主体请求GDPR 的 Windows 数据主体请求,具体取决于实际领域和需求。 有关 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}”替换为要列出角色分配的范围。

    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}"
        }
    ]
}

后续步骤