Freigeben über


Verwenden eines Azure-Dienstprinzipals mit kennwortbasierter Authentifizierung

Beim Erstellen eines Dienstprinzipals wählen Sie den Typ der von ihm verwendeten Anmeldeauthentifizierung aus. Für Azure-Dienstprinzipale sind zwei Arten von Authentifizierung verfügbar: kennwortbasiert und zertifikatbasiert. Die kennwortbasierte Authentifizierung eignet sich gut, wenn Sie mehr über Dienstprinzipale lernen, jedoch wird die zertifikatbasierte Authentifizierung für Anwendungen empfohlen.

In diesem Schritt im Tutorial wird erläutert, wie Sie ein Dienstprinzipalkennwort für den Zugriff auf eine Azure-Ressource verwenden.

Erstellen eines Dienstprinzipals mit einem Kennwort

Das Standardverhalten von az ad sp create-for-rbac besteht darin, einen Dienstprinzipal mit einem zufälligen Kennwort zu erstellen.

az ad sp create-for-rbac --name myServicePrincipalName \
                         --role reader \
                         --scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName

Ausgabekonsole:

{
  "appId": "myServicePrincipalId",
  "displayName": "myServicePrincipalName",
  "password": "myServicePrincipalPassword",
  "tenant": "myOrganizationTenantId"
}

Die Ausgabe für einen Dienstprinzipal mit Kennwortauthentifizierung enthält den Schlüssel password. Denken Sie unbedingt daran, diesen Wert zu kopieren – er kann nicht abgerufen werden. Wenn Sie das Kennwort verlieren, setzen Sie die Anmeldeinformationen des Dienstprinzipals zurück.

Anmelden mit einem Dienstprinzipal und einem Kennwort

Testen Sie die Anmeldeinformationen und Berechtigungen des neuen Dienstprinzipals, indem Sie sich anmelden. Um sich mit einem Dienstprinzipal anzumelden, benötigen Sie die appId (auch als „Dienstprinzipal-ID“, „Benutzername“ oder „Zugewiesene Person“ bezeichnet), tenant und password. Hier sehen Sie ein Beispiel:

az login --service-principal \
         --username myServicePrincipalId \
         --password myServicePrincipalPassword \
         --tenant myOrganizationTenantID

Wenn Sie das appId- oder --tenant-Element nicht kennen, rufen Sie es über den az ad sp list-Befehl ab.

spID=$(az ad sp list --display-name myServicePrincipalName --query "[].{spID:appId}" --output tsv)
tenantID=$(az ad sp list --display-name myServicePrincipalName --query "[].{tenant:appOwnerOrganizationId}" --output tsv)
echo "Using appId $spID in tenant $tenantID"

az login --service-principal \
         --username $spID \
         --password {paste your password here} \
         --tenant $tenantID

Wenn Sie in einer Organisation testen, die eine Zwei-Faktor-Authentifizierung erfordert, wird die Fehlermeldung „... Interaktive Authentifizierung erforderlich...“ angezeigt. Alternativ können Sie ein Zertifikat oder verwaltete Identitäten verwenden.

Wichtig

Wenn Sie die Anzeige Ihres Kennworts in der Konsole vermeiden möchten und az login interaktiv verwenden, können Sie den Befehl read -s in bash nutzen.

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

Verwenden Sie in PowerShell das Cmdlet Get-Credential.

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

Nächste Schritte

Sie wissen jetzt, wie Dienstprinzipale mit einem Kennwort funktionieren. Fahren Sie mit dem nächsten Schritt fort, um zu erfahren, wie Sie Dienstprinzipale mit zertifikatbasierter Authentifizierung verwenden.