Inicio de sesión con una entidad de servicio mediante la CLI de Azure

Las entidades de servicio son cuentas no asociadas a un usuario concreto, las cuales pueden tener permisos asignados mediante roles predefinidos. La autenticación con una entidad de servicio es la mejor manera de escribir scripts o programas seguros, lo que le permite aplicar las restricciones de permisos y la información de credenciales estáticas almacenadas de modo local. Para más información sobre las entidades de servicio, consulte Trabajo con entidades de servicio de Azure mediante la CLI de Azure.

Para iniciar sesión con una entidad de servicio, necesita:

  • La dirección URL o el nombre asociado a la entidad de servicio.
  • La contraseña de la entidad de servicio o el certificado X509 utilizado para crear la entidad de servicio con el formato PEM.
  • El inquilino asociado con la entidad de servicio, como un dominio de .onmicrosoft.com o un identificador de objeto de Azure.

Tenga en cuenta dos hechos importantes al trabajar con entidades de servicio y la CLI de Azure:

  • Se debe anexar un valor de CERTIFICATE a PRIVATE KEY en un archivo PEM. Para obtener un ejemplo de un formato de archivo PEM, consulte Autenticación basada en certificados.

  • Si la entidad de servicio utiliza un certificado que se almacena en Key Vault, la clave privada del certificado debe estar disponible sin iniciar sesión en Azure. Para recuperar el certificado de az login, consulte Recuperación del certificado de Key Vault.

az login --service-principal -u <app-id> -p <password-or-cert> --tenant <tenant>

Importante

Si desea evitar que se muestre la contraseña en la consola y está usando az login de forma interactiva, utilice el comando read -s en bash.

read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>

En PowerShell, use el cmdlet Get-Credential.

$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>

Consulte también