Uso de las identidades administradas asignadas por el sistema de una máquina virtual Windows para acceder a Resource ManagerUse a Windows VM system-assigned managed identity to access Resource Manager
Managed Identities for Azure Resources es una característica de Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Cada servicio de Azure compatible con Managed Identities for Azure Resources está sujeto a su propia escala de tiempo.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Asegúrese de revisar el estado de disponibilidad de las identidades administradas para el recurso y los problemas conocidos antes de comenzar.Make sure you review the availability status of managed identities for your resource and known issues before you begin.
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.This tutorial shows you how to access the Azure Resource Manager API using a Windows virtual machine with system-assigned managed identity enabled. Azure administra automáticamente Managed Identities for Azure Resources, que le permiten autenticar los servicios que admiten la autenticación de Azure AD sin necesidad de insertar credenciales en el código.Managed identities for Azure resources are automatically managed by Azure and enable you to authenticate to services that support Azure AD authentication without needing to insert credentials into your code. Aprenderá a:You learn how to:
- Concesión a una máquina virtual de acceso a un grupo de recursos en Azure Resource ManagerGrant your VM access to a Resource Group in 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 ManagerGet an access token using the VM identity and use it to call Azure Resource Manager
PrerrequisitosPrerequisites
- Conocimientos básicos sobre identidades administradas.A basic understanding of Managed identities. Si no está familiarizado con la característica Managed Identities for Azure Resources, consulte esta introducción.If you're not familiar with the managed identities for Azure resources feature, see this overview.
- Una cuenta de Azure, regístrese para obtener una cuenta gratuita.An Azure account, sign up for a free account.
- 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)."Owner" permissions at the appropriate scope (your subscription or resource group) to perform required resource creation and role management steps. 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.If you need assistance with role assignment, see Assign Azure roles to manage access to your Azure subscription resources.
- También necesita una máquina virtual Windows que tenga habilitadas las identidades administradas asignadas por el sistema.You also need a Windows Virtual machine that has system assigned managed identities enabled.
- Si necesita crear una máquina virtual para este tutorial, puede seguir el artículo titulado Configurar identidades administradas para recursos de Azure en una VM mediante Azure Portal.If you need to create a virtual machine for this tutorial, you can follow the article titled Create a virtual machine with system-assigned identity enabled
Concesión de acceso a la máquina virtual a un grupo de recursos en Resource ManagerGrant your VM access to a resource group in Resource Manager
Mediante Managed Identities for Azure Resources, el código puede obtener tokens de acceso para autenticarse en aquellos recursos que admitan la autenticación de Azure AD.Using managed identities for Azure resources, your code can get access tokens to authenticate to resources that support Azure AD authentication. Azure Resource Manager admite la autenticación de Azure AD.The Azure Resource Manager supports Azure AD authentication. En primer lugar, es necesario conceder acceso a la identidad administrada asignada por el sistema de esta máquina virtual a un recurso de Resource Manager, en este caso, al grupo de recursos que contiene la máquina virtual.First, we need to grant this VM’s system-assigned managed identity access to a resource in Resource Manager, in this case the Resource Group in which the VM is contained.
Vaya a la pestaña de Grupos de recursos.Navigate to the tab for Resource Groups.
Seleccione el grupo de recursos específico que creó para su máquina virtual Windows.Select the specific Resource Group you created for your Windows VM.
Vaya a Control de acceso (IAM) en el panel izquierdo.Go to Access control (IAM) in the left panel.
A continuación, agregue una nueva asignación de rol para su máquina virtual Windows.Then Add role assignment a new role assignment for your Windows VM. En Rol, elija Lector.Choose Role as Reader.
En la lista desplegable siguiente, asigne acceso al recurso Máquina virtual.In the next drop-down, Assign access to the resource Virtual Machine.
A continuación, asegúrese de que la suscripción adecuada aparece en la lista desplegable Suscripción.Next, ensure the proper subscription is listed in the Subscription dropdown. Y en Grupo de recursos, seleccione Todos los grupos de recursos.And for Resource Group, select All resource groups.
Por último, en Seleccionar, elija la máquina virtual Windows en la lista desplegable y haga clic en Guardar.Finally, in Select choose your Windows VM in the dropdown and click Save.
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 ManagerGet an access token using the VM's system-assigned managed identity and use it to call Azure Resource Manager
Deberá usar PowerShell en esta parte.You will need to use PowerShell in this portion. Si no tiene PowerShell instalado, descárguelo aquí.If you don’t have PowerShell installed, download it here.
En el portal, vaya a Virtual Machines y diríjase a la máquina virtual Windows. A continuación, en Introducción, haga clic en Conectar.In the portal, navigate to Virtual Machines and go to your Windows virtual machine and in the Overview, click Connect.
Escriba su nombre de usuario y contraseña que agregó cuando creó la máquina virtual Windows.Enter in your Username and Password for which you added when you created the Windows VM.
Ahora que ha creado una conexión a Escritorio remoto con la máquina virtual, abra PowerShell en la sesión remota.Now that you have created a Remote Desktop Connection with the virtual machine, open PowerShell in the remote session.
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.Using the Invoke-WebRequest cmdlet, make a request to the local managed identity for Azure resources endpoint to get an access token for 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 Azure AD espera.The value of the "resource" parameter must be an exact match for what is expected by Azure AD. Al usar el id. de recurso de Azure Resource Manager, debe incluir la barra diagonal final en el URI.When using the Azure Resource Manager resource ID, you must include the trailing slash on the 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.Next, extract the full response, which is stored as a JavaScript Object Notation (JSON) formatted string in the $response object.
$content = $response.Content | ConvertFrom-Json
Luego, extraiga el token de acceso de la respuesta.Next, extract the access token from the response.
$ArmToken = $content.access_token
Por último, llame a Azure Resource Manager mediante el token de acceso.Finally, call Azure Resource Manager using the access token. 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.In this example, we're also using the Invoke-WebRequest cmdlet to make the call to Azure Resource Manager, and include the access token in the Authorization header.
(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".The URL is case-sensitive, so ensure if you are using the exact same case as you used earlier when you named the Resource Group, and the uppercase "G" in "resourceGroups."
El siguiente comando devuelve los detalles del grupo de recursos:The following command returns the details of the Resource Group:
{"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
Pasos siguientesNext steps
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.In this quickstart, you learned how to use a system-assigned managed identity to access the Azure Resource Manager API. Para obtener más información sobre Azure Resource Manager, vea:To learn more about Azure Resource Manager see: