Listar as atribuições de função do Azure usando a API REST

O RBAC (controle de acesso baseado em função) do Azure é o sistema de autorização usado para gerenciar o acesso aos recursos no Azure. Para determinar a quais recursos os usuários, grupos, entidades de serviço ou identidades gerenciadas têm acesso, liste as atribuições das funções. Este artigo descreve como listar atribuições de função usando a API REST.

Observação

Se sua organização tiver funções de gerenciamento terceirizadas para um provedor de serviços que usa o Azure Lighthouse, as atribuições de função autorizadas por esse provedor de serviços não serão mostradas aqui. Da mesma forma, os usuários no locatário do provedor de serviços não verão atribuições de função para usuários no locatário de um cliente, independentemente da função que lhes foi atribuída.

Observação

Para obter informações sobre como exibir ou excluir dados pessoais, confira Solicitações do titular dos dados do Azure para RGPD. Para obter mais informações sobre o GDPR, confira a seção GDPR da Central de Confiabilidade da Microsoft e a seção GDPR do Portal de Confiança do Serviço.

Pré-requisitos

Você deve usar a seguinte versão:

  • 2015-07-01 ou posterior
  • 2022-04-01 ou posterior para incluir condições

Para obter mais informações, consulte as Versões da API das APIs REST do RBAC do Azure.

Listar atribuições de função

No RBAC do Azure, para listar o acesso, você lista as atribuições de função. Para listar as atribuições de função, use uma das APIs REST de Obter ou Listar Atribuições de Função. Para refinar seus resultados, especifique um escopo e um filtro opcional.

  1. Comece com a solicitação a seguir:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter={filter}
    
  2. Dentro do URI, substitua {scope} pelo escopo para o qual você deseja listar as funções de atribuição.

    Escopo Tipo
    providers/Microsoft.Management/managementGroups/{groupId1} Grupo de gerenciamento
    subscriptions/{subscriptionId1} Subscription
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Recurso

    No exemplo anterior, microsoft.web é um provedor de recursos que se refere a uma instância do Serviço de Aplicativo. Da mesma forma, você pode usar qualquer outro provedor de recursos e especificar o escopo. Para obter mais informações, consulte provedores de recursos e tipos do Azure e operações do provedor de recursos do Azurecom suporte.

  3. Substitua {filter} pela condição que você deseja aplicar a fim de filtrar a lista de atribuições de função.

    Filtro Descrição
    $filter=atScope() Lista as atribuições de função apenas do escopo especificado, não incluindo as atribuições de função em subescopos.
    $filter=assignedTo('{objectId}') Lista as atribuições de função de um usuário ou de uma entidade de serviço especificada.
    Se o usuário é membro de um grupo que tem uma atribuição de função, essa atribuição de função também é listada. Esse filtro é transitivo para grupos, o que significa que, se o usuário é membro de um grupo e esse grupo é membro de outro grupo que tem uma atribuição de função, essa atribuição de função também é listada.
    Esse filtro só aceita uma ID de objeto para um usuário ou uma entidade de serviço. Não é possível passar uma ID de objeto para um grupo.
    $filter=atScope()+and+assignedTo('{objectId}') Lista as atribuições de função do usuário ou da entidade de serviço especificada e no escopo especificado.
    $filter=principalId+eq+'{objectId}' Lista as atribuições de função de um usuário, um grupo ou uma entidade de serviço especificada.

A seguinte solicitação lista todas as atribuições de função do usuário especificado no escopo da assinatura:

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

O texto a seguir mostra um exemplo da saída:

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

Próximas etapas