Uso de identidades administradas para recursos de Azure en una máquina virtual de Azure para el inicio de sesión

Las 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 artículo se proporcionan ejemplos de script de PowerShell y de la CLI para el inicio de sesión mediante identidades administradas para una entidad de servicio de recursos de Azure, así como instrucciones sobre temas importantes como el tratamiento de errores.

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Requisitos previos

Si tiene previsto usar los ejemplos de Azure PowerShell o de la CLI de Azure en este artículo, asegúrese de instalar la versión más reciente de Azure PowerShell o de la CLI de Azure.

Importante

  • En todo el script de ejemplo de este artículo se da por supuesto que el cliente de la línea de comandos se ejecuta en una VM con identidades administradas para los recursos de Azure habilitados. Use la característica "Conectar" de la máquina virtual en Azure Portal para conectarse a la máquina virtual de forma remota. Para más información sobre la habilitación de identidades administradas de recursos de Azure en una VM, consulte Configure managed identities for Azure resources on a VM using the Azure portal (Configuración de identidades administradas de recursos de Azure en una VM mediante Azure Portal) o uno de los artículos derivados (mediante PowerShell, la CLI, una plantilla o un SDK de Azure).
  • Para evitar errores durante el acceso a los recursos, se debe otorgar a la identidad administrada de VM al menos el acceso de "Lector" en el ámbito adecuado (la VM u otro superior) para permitir las operaciones de Azure Resource Manager en la VM. Consulte Asignación de acceso de Managed Service Identity a un recurso mediante Azure Portal para obtener más detalles.

Información general

Las identidades administradas para recursos de Azure proporcionan un objeto de entidad de servicio, que se crea al habilitar las identidades administradas para recursos de Azure en la máquina virtual. A la entidad de servicio se le puede dar acceso a los recursos de Azure y los clientes de script o de línea de comandos pueden usar esta entidad para iniciar sesión y acceder a los recursos. Tradicionalmente, para acceder a los recursos protegidos con su propia identidad, un cliente de script debía hacer lo siguiente:

  • Registrarse y ser aceptado en Microsoft Entra ID como una aplicación cliente confidencial/web
  • Iniciar sesión con su entidad de servicio mediante las credenciales de la aplicación (que probablemente estaban insertadas en el script)

Con las identidades administradas para los recursos de Azure, el cliente de script ya no tiene que seguir ninguno de estos pasos, ya que puede iniciar sesión bajo las identidades administradas para la entidad de servicio de recursos de Azure.

Azure CLI

El script siguiente muestra cómo:

  1. Iniciar sesión en Microsoft Entra ID bajo la identidad administrada de VM para la entidad de servicio de recursos de Azure

  2. Llamar a Azure Resource Manager y obtener el identificador de entidad de servicio de la máquina virtual. La CLI se ocupa de administrar la adquisición y el uso del token automáticamente. Asegúrese de sustituir el nombre de máquina virtual por <VM-NAME>.

    az login --identity
    
    $spID=$(az resource list -n <VM-NAME> --query [*].identity.principalId --out tsv)
    echo The managed identity for Azure resources service principal ID is $spID
    

Azure PowerShell

El script siguiente muestra cómo:

  1. Iniciar sesión en Microsoft Entra ID bajo la identidad administrada de VM para la entidad de servicio de recursos de Azure

  2. Llamar a un cmdlet de Azure Resource Manager para obtener información acerca de la máquina virtual PowerShell se encarga de administrar el uso del token automáticamente.

    Add-AzAccount -identity
    
    # Call Azure Resource Manager to get the service principal ID for the VM's managed identity for Azure resources. 
    $vmInfoPs = Get-AzVM -ResourceGroupName <RESOURCE-GROUP> -Name <VM-NAME>
    $spID = $vmInfoPs.Identity.PrincipalId
    echo "The managed identity for Azure resources service principal ID is $spID"
    

Identificadores de recurso para los servicios de Azure

Consulte Servicios de Azure que admiten la autenticación de Microsoft Entra para ver una lista de recursos que admite Microsoft Entra ID y que se han probado con identidades administradas para recursos de Azure y sus respectivos identificadores de recursos.

Instrucciones de control de errores

Respuestas como las siguientes pueden indicar que la identidad administrada de VM para los recursos de Azure no se ha configurado correctamente:

  • PowerShell: Invoke-WebRequest : No se puede conectar al servidor remoto
  • CLI: MSI: No se pudo recuperar un token de http://localhost:50342/oauth2/token con un error de "HTTPConnectionPool(host='localhost', port=50342)"

Si recibe uno de estos errores, vuelva a la máquina virtual de Azure en Azure Portal, vaya a la página Identidad y compruebe queAsignado por el sistema esté establecido en "Sí".

Pasos siguientes