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

O controle de acesso baseado em função do Azure (Azure RBAC) é o sistema de autorização que você usa para gerenciar o acesso aos recursos do Azure. Para determinar a que recursos os utilizadores, grupos, principais de serviços ou identidades geridas têm acesso, liste as suas atribuições de funções. Este artigo descreve como listar atribuições de função usando a API REST.

Nota

Se sua organização tiver terceirizado funções de gerenciamento 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.

Nota

Para obter informações sobre a visualização ou eliminação de dados pessoais, veja Azure Data Subject Requests for the GDPR (Pedidos de Titulares de Dados do Azure relativos aos RGPD). Para obter mais informações sobre o GDPR, consulte a seção GDPR da Central de Confiabilidade da Microsoft e a seção GDPR do portal Service Trust.

Pré-requisitos

Você deve usar a seguinte versão:

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

Para obter mais informações, consulte Versões de 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 atribuições de função, use uma das APIs REST de Atribuição de Função Obter ou Listar. Para refinar os resultados, especifique um escopo e um filtro opcional.

  1. Comece com a seguinte solicitação:

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

    Âmbito Type
    providers/Microsoft.Management/managementGroups/{groupId1} Grupo de gestão
    subscriptions/{subscriptionId1} Subscrição
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 Grupo de recursos
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Resource

    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 quaisquer outros provedores de recursos e especificar o escopo. Para obter mais informações, consulte Provedores e tipos de recursos do Azure e operações de provedor de recursos do Azure com suporte.

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

    Filtro Description
    $filter=atScope() Lista as atribuições de função apenas para o escopo especificado, não incluindo as atribuições de função nos subescopos.
    $filter=assignedTo('{objectId}') Lista as atribuições de função para um usuário ou entidade de serviço especificado.
    Se o usuário for membro de um grupo que tenha uma atribuição de função, essa atribuição de função também será listada. Esse filtro é transitivo para grupos, o que significa que, se o usuário for membro de um grupo e esse grupo for membro de outro grupo que tenha uma atribuição de função, essa atribuição de função também será 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 para o usuário ou entidade de serviço especificada e no escopo especificado.
    $filter=principalId+eq+'{objectId}' Lista as atribuições de função para um usuário, grupo ou entidade de serviço especificada.

A solicitação a seguir lista todas as atribuições de função para o 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}')

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óximos passos