使用 REST API 列出 Azure 拒绝分配

即使角色分配向用户授予了访问权限,Azure 拒绝分配也会阻止用户执行特定的 Azure 资源操作。 本文介绍如何使用 REST API 列出拒绝分配。

注意

不能直接创建自己的拒绝分配。 有关详细信息,请参阅 Azure 拒绝分配

先决条件

如要获取拒绝分配的相关信息,必须具有:

  • Microsoft.Authorization/denyAssignments/read 权限,大多数 Azure 内置角色都包含该权限。

必须使用以下版本:

  • 2018-07-01-preview 或更高版本
  • 2022-04-01 是第一个稳定版本

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

列出单个拒绝分配

若要列出单个拒绝分配,请使用拒绝分配 - 获取 REST API。

  1. 从下面的请求开始:

    GET https://management.chinacloudapi.cn/{scope}/providers/Microsoft.Authorization/denyAssignments/{deny-assignment-id}?api-version=2022-04-01
    
  2. 在 URI 中,将 {scope} 替换为要列出拒绝分配的范围。

    作用域 类型
    subscriptions/{subscriptionId} 订阅
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 资源组
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 资源
  3. 将 {deny-assignment-id} 替换为要检索的拒绝分配标识符。

列出多个拒绝分配

若要列出多个拒绝分配,请使用拒绝分配 - 列出 REST API。

  1. 先处理下述请求之一:

    GET https://management.chinacloudapi.cn/{scope}/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01
    

    具有可选参数:

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

    作用域 类型
    subscriptions/{subscriptionId} 订阅
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 资源组
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 资源
  3. 将 {filter} 替换为筛选拒绝分配列表时要应用的条件。

    筛选器 说明
    (无筛选器) 列出指定范围之内、之上和之下的所有拒绝分配。
    $filter=atScope() 仅列出指定范围内及其上的拒绝分配。 不包含子范围处的拒绝分配。
    $filter=assignedTo('{objectId}') 列出指定用户或服务主体的拒绝分配。
    如果用户属于包含拒绝分配的组,则也会列出该拒绝分配。 此筛选器对于组是可传递的,这意味着如果用户是组的成员,并且该组是包含拒绝分配的另一个组的成员,则该拒绝分配也会列出。
    此筛选器仅接受用户或服务主体的对象 ID。 不能传递组的对象 ID。
    $filter=atScope()+and+assignedTo('{objectId}') 列出指定范围内指定用户或服务主体的拒绝分配。
    $filter=denyAssignmentName+eq+'{deny-assignment-name}' 列出具有指定名称的拒绝分配。
    $filter=principalId+eq+'{objectId}' 列出指定用户、组或服务主体的拒绝分配。

列出根范围 (/) 处的拒绝分配

  1. 提升访问权限,如提升访问权限以管理所有 Azure 订阅和管理组所述。

  2. 使用以下请求:

    GET https://management.chinacloudapi.cn/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01&$filter={filter}
    
  3. 将 {filter} 替换为筛选拒绝分配列表时要应用的条件。 需使用筛选器。

    筛选器 说明
    $filter=atScope() 仅列出根范围处的拒绝分配。 不包含子范围处的拒绝分配。
    $filter=denyAssignmentName+eq+'{deny-assignment-name}' 列出具有指定名称的拒绝分配。
  4. 删除已提升的访问权限。

后续步骤