Logga in på Azure med tjänstens huvudnamn med hjälp av Azure CLI
Tjänstens huvudnamn är konton som inte är knutna till någon viss användare, som kan ha behörigheter för dem tilldelade via fördefinierade roller. Det bästa sättet att skriva säkra skript eller program är att autentisera med ett huvudnamn för tjänsten eftersom du då kan använda både behörighetsbegränsningar och lokalt lagrade statiska autentiseringsuppgifter. Mer information om tjänstens huvudnamn finns i Arbeta med Azure-tjänstens huvudnamn med hjälp av Azure CLI.
Om du vill logga in med ett huvudnamn för tjänsten behöver du:
- Den URL eller det namn som associeras med tjänstens huvudnamn
- Klienthemligheten för tjänstens huvudnamn eller X509-certifikatet som används för att skapa tjänstens huvudnamn i PEM-format
- Klientorganisationen som är associerad med tjänstens huvudnamn, antingen som en
.onmicrosoft.com
domän eller Microsoft Entra-klientorganisations-ID
Observera två viktiga fakta när du arbetar med tjänstens huvudnamn och Azure CLI:
Ett CERTIFIKAT måste läggas till i DEN PRIVATA NYCKELN i en PEM-fil. Ett exempel på ett PEM-filformat finns i Certifikatbaserad autentisering.
Om tjänstens huvudnamn använder ett certifikat som lagras i Key Vault måste certifikatets privata nyckel vara tillgänglig utan att logga in på Azure. Information om hur du hämtar certifikatet för
az login
finns i Hämta certifikat från Key Vault.
Logga in med klienthemlighet:
az login --service-principal --username APP_ID --password CLIENT_SECRET --tenant TENANT_ID
Logga in med certifikat:
az login --service-principal --username APP_ID --certificate /path/to/cert.pem --tenant TENANT_ID
Viktigt!
Om du vill undvika att visa lösenordet i konsolen och använder az login
interaktivt använder du kommandot read -s
under bash
.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal --username <app-id> --password $AZ_PASS --tenant <tenant>
Använd cmdleten Get-Credential
under PowerShell.
$AzCred = Get-Credential -UserName <app-id>
az login --service-principal --username $AzCred.UserName --password $AzCred.GetNetworkCredential().Password --tenant <tenant>