Freigeben über


Anmelden bei Azure mit einem Service Principal mithilfe der Azure CLI

Dienstprinzipale sind Konten, die nicht an einen bestimmten Benutzer gebunden sind, den Sie Berechtigungen über vordefinierte Rollen zuweisen können. Die Authentifizierung mit einem Dienstprinzipal ist die beste Möglichkeit, sichere Skripts oder Programme zu schreiben. Sie können sowohl Berechtigungseinschränkungen als auch lokal gespeicherte statische Anmeldeinformationen anwenden. Weitere Informationen finden Sie unter Arbeiten mit Azure-Dienstprinzipalen über die Azure CLI.

Für die Anmeldung mit einem Dienstprinzipal benötigen Sie Folgendes:

  • Die URL oder der Name, der dem Dienstprinzipal zugeordnet ist.
  • Der geheime Clientschlüssel des Dienstprinzipals oder das X509-Zertifikat, das zum Erstellen des Dienstprinzipals im PEM-Format verwendet wird.
  • Der dem Dienstprinzipal zugeordnete Mandant als .onmicrosoft.com Domäne oder Microsoft Entra-Mandanten-ID.

Beachten Sie zwei wichtige Punkte beim Arbeiten mit Dienstprinzipalen und der Azure CLI:

  • In einer PEM-Datei muss ein Zertifikat (CERTIFICATE) an den privaten Schlüssel (PRIVATE KEY) angefügt werden. Ein Beispiel für ein PEM-Dateiformat finden Sie unter Zertifikatbasierte Authentifizierung.

  • Wenn Ihr Dienstprinzipal ein zertifikat verwendet, das im Key Vault gespeichert ist, muss der private Schlüssel dieses Zertifikats ohne Anmeldung bei Azure verfügbar sein. Informationen zum Abrufen des Zertifikats für az login finden Sie unter Abrufen des Zertifikats aus Key Vault.

Verwenden Sie den folgenden Befehl, um sich mit einem geheimen Clientschlüssel anzumelden:

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

Verwenden Sie den folgenden Befehl, um sich mit einem Zertifikat anzumelden:

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

Von Bedeutung

Um das Anzeigen Ihres Kennworts in der Konsole bei interaktiver Verwendung az login zu vermeiden, verwenden Sie den read -s Befehl unter bash.

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

Verwenden Sie in PowerShell das Cmdlet Get-Credential.

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

Siehe auch