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
- Conocimientos básicos sobre identidades administradas. Si no está familiarizado con la característica Managed Identities for Azure Resources, consulte esta introducción.
- Una cuenta de Azure, regístrese para obtener una cuenta gratuita.
- Para realizar la creación de los recursos necesarios y los pasos de administración de roles, debe tener permisos de "Propietario" en el ámbito adecuado (la suscripción o el grupo de recursos). Si necesita ayuda con la asignación de roles, consulte Asignación de roles de Azure para administrar el acceso a los recursos de una suscripción de Azure.
- También necesita una máquina virtual Windows que tenga habilitadas las identidades administradas asignadas por el sistema.
- Si necesita crear una máquina virtual para este tutorial, puede seguir el artículo titulado Crear una máquina virtual con la identidad asignada por el sistema habilitada.
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.
Para habilitar una identidad administrada asignada por el sistema en una máquina virtual nueva:
Inicie sesión en el Portal de Azure
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.
- Inicie sesión en Azure Portal con su cuenta de administrador.
- Vaya a la pestaña de Grupos de recursos.
- Seleccione el grupo de recursos al que desea conceder acceso a la identidad administrada de la máquina virtual.
- En el panel izquierdo, seleccione Control de acceso (IAM).
- Seleccione Agregar y, después, Agregar asignación de roles.
- En la pestaña Rol, seleccione Lector. Este rol permite ver todo recursos, pero no realizar cambios.
- En la pestaña Miembros, para la sección Asignar acceso a, seleccione Identidad administrada. Elija + Seleccionar miembros.
- 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.
- En la lista desplegable Administrar identidad, seleccione Máquina virtual.
- 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í.
En el portal, vaya a Virtual Machines y diríjase a la máquina virtual Windows. A continuación, en Introducción, seleccione Conectar.
Escriba su nombre de usuario y contraseña que agregó cuando creó la máquina virtual Windows.
Ahora que ha creado una conexión a Escritorio remoto con la máquina virtual, abra PowerShell en la sesión remota.
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: