Aanmelden bij Azure met een service-principal met behulp van de Azure CLI
Service-principals zijn accounts die niet zijn gekoppeld aan een bepaalde gebruiker, waarvoor machtigingen kunnen zijn toegewezen via vooraf gedefinieerde rollen. Verificatie met een service-principal is de beste manier om beveiligde scripts of programma's te schrijven. U kunt hiermee zowel machtigingsbeperkingen als lokaal opgeslagen, statische referentiegegevens toepassen. Zie Werken met Azure-service-principals met behulp van de Azure CLI voor meer informatie over service-principals.
Voor aanmelding met een service-principal hebt u het volgende nodig:
- De URL of naam die gekoppeld is aan de service-principal.
- Het clientgeheim van de service-principal of het X509-certificaat dat wordt gebruikt voor het maken van de service-principal in PEM-indeling
- De tenant die is gekoppeld aan de service-principal, als domein
.onmicrosoft.com
- of Microsoft Entra-tenant-id
Let op twee belangrijke feiten bij het werken met service-principals en de Azure CLI:
Een CERTIFICAAT moet worden toegevoegd aan de PERSOONLIJKE SLEUTEL in een PEM-bestand. Zie Verificatie op basis van certificaten voor een voorbeeld van een PEM-bestandsindeling.
Als uw service-principal een certificaat gebruikt dat is opgeslagen in Key Vault, moet de persoonlijke sleutel van dat certificaat beschikbaar zijn zonder u aan te melden bij Azure. Zie Certificaat ophalen uit Key Vault om het certificaat voor
az login
op te halen.
Meld u aan met clientgeheim:
az login --service-principal --username APP_ID --password CLIENT_SECRET --tenant TENANT_ID
Aanmelden met certificaat:
az login --service-principal --username APP_ID --certificate /path/to/cert.pem --tenant TENANT_ID
Belangrijk
Als u wilt voorkomen dat uw wachtwoord in de console wordt weergegeven en az login
interactief gebruikt, gebruikt u de read -s
-opdracht onder bash
.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal --username <app-id> --password $AZ_PASS --tenant <tenant>
Gebruik de Get-Credential
cmdlet onder PowerShell.
$AzCred = Get-Credential -UserName <app-id>
az login --service-principal --username $AzCred.UserName --password $AzCred.GetNetworkCredential().Password --tenant <tenant>