Inicio de sesión en Azure 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.
- El secreto de cliente de la entidad de servicio o el certificado X509 usado para crear la entidad de servicio en formato PEM
- El inquilino asociado a la entidad de servicio, como un dominio o un
.onmicrosoft.com
identificador 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 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.
Inicie sesión con el secreto de cliente:
az login --service-principal --username APP_ID --password CLIENT_SECRET --tenant TENANT_ID
Inicie sesión con certificado:
az login --service-principal --username APP_ID --certificate /path/to/cert.pem --tenant TENANT_ID
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 --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>