Uso de las identidades administradas asignadas por el sistema de una máquina virtual Windows para acceder a Resource Manager

Identidades administradas para recursos de Azure es una característica de Microsoft Entra ID. Cada servicio de Azure compatible con Managed Identities for Azure Resources está sujeto a su propia escala de tiempo. Asegúrese de revisar el estado de disponibilidad de las identidades administradas para el recurso y los problemas conocidos antes de comenzar.

En este tutorial, se muestra cómo acceder a la API de Azure Resource Manager mediante una máquina virtual Windows con una identidad administrada habilitada asignada por el sistema. Azure administra automáticamente las identidades administradas para recursos de Azure, que le permiten autenticar los servicios que admiten la autenticación de Microsoft Entra sin necesidad de insertar credenciales en el código. Aprenderá a:

  • Concesión a una máquina virtual de acceso a un grupo de recursos en Azure Resource Manager
  • Obtención de un token de acceso mediante la identidad de máquina virtual y su uso para llamar a Azure Resource Manager

Prerrequisitos

Habilitar

La habilitación de una identidad administrada asignada por el sistema es una experiencia de un solo clic. Puede habilitarla durante la creación de una máquina virtual o en las propiedades de una máquina virtual existente.

Screenshot shows the System assigned tab for a virtual machine where you can turn on the System assigned status.

Para habilitar una identidad administrada asignada por el sistema en una máquina virtual nueva:

  1. Inicie sesión en el Portal de Azure

  2. Crear una máquina virtual que tenga habilitada la identidad asignada por el sistema

Concesión de acceso a la máquina virtual a un grupo de recursos en Resource Manager

Sugerencia

Los pasos de este artículo pueden variar ligeramente en función del portal desde donde comienza.

Mediante identidades administradas para recursos de Azure, la aplicación puede obtener tokens de acceso para autenticarse en aquellos recursos que admitan la autenticación de Microsoft Entra. La API de Azure Resource Manager es compatible con la autenticación de Microsoft Entra. Concedemos acceso a la identidad de esta máquina virtual a un recurso en Azure Resource Manager, en este caso, un grupo de recursos. Asignamos el rol Lector a la identidad administrada en el ámbito del grupo de recursos.

  1. Inicie sesión en Azure Portal con su cuenta de administrador.
  2. Vaya a la pestaña de Grupos de recursos.
  3. Seleccione el grupo de recursos al que desea conceder acceso a la identidad administrada de la máquina virtual.
  4. En el panel izquierdo, seleccione Control de acceso (IAM).
  5. Seleccione Agregar y, después, Agregar asignación de roles.
  6. En la pestaña Rol, seleccione Lector. Este rol permite ver todo recursos, pero no realizar cambios.
  7. En la pestaña Miembros, para la sección Asignar acceso a, seleccione Identidad administrada. Elija + Seleccionar miembros.
  8. Asegúrese de que la suscripción adecuada aparece en la lista desplegable Suscripción. Y en Grupo de recursos, seleccione Todos los grupos de recursos.
  9. En la lista desplegable Administrar identidad, seleccione Máquina virtual.
  10. Por último, en Seleccionar, elija la máquina virtual Windows de la lista desplegable y seleccione Guardar.

Obtención de un token de acceso mediante una identidad administrada asignada por el sistema de la máquina virtual y su uso para llamar a Azure Resource Manager

Deberá usar PowerShell en esta parte. Si no tiene PowerShell instalado, descárguelo aquí.

  1. En el portal, vaya a Virtual Machines y diríjase a la máquina virtual Windows. A continuación, en Introducción, seleccione Conectar.

  2. Escriba su nombre de usuario y contraseña que agregó cuando creó la máquina virtual Windows.

  3. Ahora que ha creado una conexión a Escritorio remoto con la máquina virtual, abra PowerShell en la sesión remota.

  4. Mediante el cmdlet Invoke-WebRequest, realice una solicitud al punto de conexión local de la identidad administrada de recursos de Azure y obtenga un token de acceso para Azure Resource Manager.

       $response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -Method GET -Headers @{Metadata="true"}
    

    Nota:

    El valor del parámetro "resource" debe coincidir exactamente con el que Microsoft Entra ID espera. Al usar el id. de recurso de Azure Resource Manager, debe incluir la barra diagonal final en el URI.

    A continuación, extraiga la respuesta completa, que se almacena como una cadena con formato de notación de objetos JavaScript (JSON) en el objeto $response.

    $content = $response.Content | ConvertFrom-Json
    

    Luego, extraiga el token de acceso de la respuesta.

    $ArmToken = $content.access_token
    

    Por último, llame a Azure Resource Manager mediante el token de acceso. En este ejemplo, también se usará el cmdlet Invoke-WebRequest para realizar la llamada a Azure Resource Manager y se incluirá el token de acceso en el encabezado de autorización.

    (Invoke-WebRequest -Uri https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>?api-version=2016-06-01 -Method GET -ContentType "application/json" -Headers @{ Authorization ="Bearer $ArmToken"}).content
    

    Nota:

    La dirección URL distingue mayúsculas de minúsculas, por lo tanto, asegúrese de que usa las mismas mayúsculas y minúsculas que al asignar el nombre al grupo de recursos, así como la "G" mayúscula de "resourceGroups".

    El siguiente comando devuelve los detalles del grupo de recursos:

    {"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
    

Pasos siguientes

En esta guía de inicio rápido, ha aprendido a usar una identidad administrada asignada por el sistema para acceder a la API de Azure Resource Manager. Para obtener más información sobre Azure Resource Manager, vea: