Compartir a través de


Inicie sesión en Azure con un principal de servicio mediante la CLI de Azure

Las entidades de servicio son cuentas que no están vinculadas a ningún usuario en particular y a las que se les pueden asignar permisos a través de roles predefinidos. La autenticación con una entidad de servicio es la mejor manera de escribir scripts o programas seguros. Permite aplicar restricciones de permisos e información de credenciales estáticas almacenadas localmente. 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 un servicio principal, necesita:

  • Dirección URL o nombre asociado a la entidad de servicio.
  • El secreto de cliente de la entidad de servicio o el certificado X509 que se usa para crear la entidad de servicio en formato PEM.
  • El inquilino asociado con la entidad de servicio, ya sea un dominio .onmicrosoft.com o un ID de inquilino de Microsoft Entra.

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

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

  • Si la entidad de servicio usa un certificado almacenado 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.

Para iniciar sesión con un secreto de cliente, use el siguiente comando:

az login --service-principal --username APP_ID --password CLIENT_SECRET --tenant TENANT_ID

Para iniciar sesión con un certificado, use el siguiente comando:

az login --service-principal --username APP_ID --certificate /path/to/cert.pem --tenant TENANT_ID

Importante

Para evitar mostrar la contraseña en la consola al usar az login de forma interactiva, use el read -s comando en bash.

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

En PowerShell, use el cmdlet Get-Credential.

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

Consulte también