Enumeración de asignaciones de roles de Azure mediante la API REST

El control de acceso basado en rol (RBAC) de Azure es el sistema de autorización que puede utilizar para administrar el acceso a los recursos de Azure. Para determinar a qué recursos tienen acceso los usuarios, grupos, entidades de servicio o identidades administradas, se muestran sus asignaciones de roles. En este artículo se describe cómo enumerar las asignaciones de roles mediante la API REST.

Nota:

Si su organización ha externalizado las funciones de administración a un proveedor de servicios que usa Azure Lighthouse, las asignaciones de roles autorizadas por ese proveedor de servicios no se mostrarán aquí. Del mismo modo, los usuarios del inquilino del proveedor de servicios no verán asignaciones de roles para los usuarios en el inquilino de un cliente, independientemente del rol que se les haya asignado.

Nota:

Para más información sobre cómo ver o eliminar datos personales, consulte Solicitudes de interesados de datos de Azure para el RGPD. Para más información sobre RGPD, consulte Información sobre los procedimientos recomendados para el cumplimiento del RGPD y la sección RGPD del portal de confianza de servicios.

Requisitos previos

Debe usar la versión siguiente:

  • 2015-07-01 o posterior
  • 2022-04-01 o posterior para incluir condiciones

Para obtener más información, consulte Versiones de la API REST de RBAC de Azure.

Lista de asignaciones de roles

En RBAC de Azure, para enumerar el acceso se enumeran las asignaciones de roles. Para mostrar la lista de asignación de roles, use una de las API REST (Get o List) de Asignaciones de roles. Para mejorar los resultados, especifique un ámbito y un filtro opcional.

  1. Empiece con la solicitud siguiente:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter={filter}
    
  2. En el identificador URI, reemplace {scope} por el ámbito cuya lista de asignaciones de roles quiere obtener.

    Ámbito Tipo
    providers/Microsoft.Management/managementGroups/{groupId1} Grupo de administración
    subscriptions/{subscriptionId1} Subscription
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Resource

    En el ejemplo anterior, microsoft.web es un proveedor de recursos que hace referencia a una instancia de App Service. De forma similar, puede usar cualquier otro proveedor de recursos y especificar el ámbito. Para más información, consulte Tipos y proveedores de recursos de Azure y Operaciones del proveedor de recursos de Azure compatibles.

  3. Reemplace {filter} por la condición que quiere aplicar para filtrar la lista de asignación de roles.

    Filter Descripción
    $filter=atScope() Lista de las asignaciones de roles únicamente para el ámbito especificado, sin incluir las asignaciones de roles en ámbitos secundarios.
    $filter=assignedTo('{objectId}') Lista de las asignaciones de roles para un usuario o una entidad de servicio determinados.
    Si el usuario es miembro de un grupo que tiene una asignación de roles, también se muestra esa asignación de roles. Este filtro es transitivo para los grupos, lo que significa que, si el usuario es miembro de un grupo y ese grupo es miembro de otro grupo que tiene una asignación de roles, también se muestra esa asignación de roles.
    Este filtro solo acepta un identificador de objeto para un usuario o una entidad de servicio. No se puede pasar un identificador de objeto para un grupo.
    $filter=atScope()+and+assignedTo('{objectId}') Muestra las asignaciones de roles para el usuario o la entidad de servicio determinados y en el ámbito especificado.
    $filter=principalId+eq+'{objectId}' Lista de las asignaciones de roles para un usuario, un grupo o una entidad de servicio determinados.

La solicitud siguiente enumera todas las asignaciones de roles del usuario especificado en el ámbito de la suscripción:

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

El siguiente texto muestra un ejemplo de la salida:

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

Pasos siguientes