Erstellen eines Azure-Dienstprinzipals mit der Azure CLI
Artikel
Automatisierte Tools, die Azure-Dienste verwenden, sollten immer über eingeschränkte Berechtigungen verfügen, um Ihre Azure-Ressourcen zu schützen. Aus diesem Grund bietet Azure Dienstprinzipale, damit Anwendungen sich nicht als Benutzer mit uneingeschränkten Berechtigungen anmelden. Ein Azure-Dienstprinzipal ist eine Identität, die zur Verwendung mit Anwendungen, gehosteten Diensten und automatisierten Tools erstellt wird. Diese Identität wird für den Zugriff auf Ressourcen verwendet.
In diesem Tutorial lernen Sie Folgendes:
Erstellen eines Dienstprinzipals
Anmelden mit einem Dienstprinzipal und einem Kennwort
Anmelden mit einem Dienstprinzipal und einem Zertifikat
Verwalten von Dienstprinzipalrollen
Erstellen einer Azure-Ressource mithilfe eines Dienstprinzipals
Zurücksetzen von Anmeldeinformationen für Dienstprinzipal
Voraussetzungen
In einem Abonnement müssen Sie über User Access Administrator- oder Role Based Access Control Administrator- Berechtigungen verfügen, um einen Dienstprinzipal zu erstellen. Eine Liste der Rollen, die für die rollenbasierte Azure-Zugriffssteuerung (Azure RBAC) verfügbar sind, finden Sie unter Integrierte Azure-Rollen.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
Erstellen eines Dienstprinzipals
Verwenden Sie den Azure CLI-Verweisbefehl az ad sp create-for-rbac, um einen Dienstprinzipal zu erstellen. In diesem Beispiel wird kein --name-Parameter angegeben, sodass automatisch ein Name erstellt wird, der einen Zeitstempel enthält.
Wenn Sie die Konventionen für die Ressourcenbenennung nicht befolgen und planen, später eine Rolle und einen Bereich für den neuen Dienstprinzipal zu erstellen, können Sie den Befehl az ad sp create-for-rbac ohne Parameter verwenden. Ohne Rolle und Bereich hat der neue Dienstprinzipal jedoch keinen Zugriff auf Ressourcen. Er ist einfach vorhanden.
Wenn Sie einen Dienstprinzipal ohne Parameter erstellen, führen Sie auch die folgenden Schritte aus:
Wenn Ihr Konto nicht über die Berechtigung zum Erstellen eines Dienstprinzipals verfügt, gibt az ad sp create-for-rbac eine Fehlermeldung mit dem Hinweis „Nicht genügend Berechtigungen zum Abschließen des Vorgangs“ zurück. Wenden Sie sich an Ihre*n Microsoft Entra-Administrator*in, um einen Dienstprinzipal zu erstellen.
In einem Microsoft Entra-ID-Verzeichnis, in dem die Benutzereinstellung Benutzer können Anwendungen registriere auf Nein festgelegt wurde, müssen Sie Mitglied einer der folgenden integrierten Microsoft Entra-ID-Rollen sein (die folgende Aktion haben: microsoft.directory/applications/createAsOwner oder microsoft.directory/applications/create):
Erstellen eines Dienstprinzipals mit Rolle und Bereich
Die bewährte Methode besteht darin, beim Erstellen eines Dienstprinzipals immer bestimmte --role- und --scopes-Werte zuzuweisen. Führen Sie folgende Schritte aus:
Bestimmen Sie die richtige Rolle.
Verwenden Sie beim Bestimmen der Rolle immer das Prinzip der geringsten Rechte. Geben Sie Ihrem Dienstprinzipal beispielsweise nicht die Berechtigungen von contributor für ein Abonnement, wenn der Dienstprinzipal nur auf Azure Storage innerhalb einer Ressourcengruppe zugreifen muss. Ziehen Sie eine spezielle Rolle wie Mitwirkender an Storage-Blobdaten in Erwägung. Eine vollständige Liste der Rollen, die in Azure RBAC verfügbar sind, finden Sie unter Integrierten Azure-Rollen.
Ruft einen Wert für den scopes-Parameter ab.
Suchen und kopieren Sie die Ressourcen-ID der Azure-Ressource, auf die der neue Dienstprinzipal Zugriff benötigt. Diese Informationen finden Sie in der Regel im Azure-Portal auf der Seite Eigenschaften oder Endpunkte der Ressource. Nachfolgend finden Sie allgemeine Beispiele mit --scopes, für das tatsächliche Format und den tatsächlichen Wert nutzen Sie aber unbedingt Ihre Ressourcen-ID.
In diesem Beispiel wird ein neuer Dienstprinzipal mit dem Namen myServicePrincipalName1 mit der Berechtigung Leser für alle Ressourcen in der Ressourcengruppe RG1 erstellt.
Der Parameter --scopes akzeptiert eine durch Leerzeichen getrennte Liste der Bereiche. In diesem Beispiel wird ein neuer Dienstprinzipal mit dem Namen myServicePrincipalName2 mit der Berechtigung Leser für alle Ressourcen in der Ressourcengruppe myRG1 erstellt. Dieser Dienstprinzipal erhält auch die Berechtigung Leser für myVM in myRG2.
Wenn Sie in einer PowerShell-Umgebung arbeiten, entfernen Sie die Bash-Zeilenfortsetzungszeichen.
PowerShell
# PowerShell script
az ad sp create-for-rbac --name myServicePrincipalName1 --role reader --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
Der Parameter --scopes akzeptiert eine durch Leerzeichen getrennte Liste der Bereiche. In diesem Beispiel wird ein neuer Dienstprinzipal mit dem Namen myServicePrincipalName2 mit der Berechtigung Leser für alle Ressourcen in der Ressourcengruppe myRG1 erstellt. Dieser Dienstprinzipal erhält auch die Berechtigung Leser für myVM in myRG2.
Wenn Sie dem neuen Dienstprinzipal zu wenige oder zu viele Berechtigungen erteilt haben, ändern Sie die Berechtigungen durch die Verwaltung von Dienstprinzipalrollen.
Erstellen eines Dienstprinzipals mithilfe von Variablen
Sie können einen Dienstprinzipal auch mithilfe von Variablen erstellen:
# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"az ad sp create-for-rbac --name$servicePrincipalName \
--role$roleName \
--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
Azure CLI
# PowerShell script$randomIdentifier = (New-Guid).ToString().Substring(0,8)
$servicePrincipalName="msdocs-sp-$randomIdentifier"$roleName="azureRoleName"$subscriptionID=$(az account show --query id --output tsv)
$resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"az ad sp create-for-rbac --name$servicePrincipalName--role$roleName--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
Wenn Sie mithilfe des Befehls az ad sp create-for-rbac einen Azure-Dienstprinzipal erstellen, enthält die Ausgabe Anmeldeinformationen, die geschützt werden müssen. Schließen Sie diese Anmeldeinformationen nicht in Ihren Code ein, und checken Sie sie nicht in Ihre Quellcodeverwaltung ein. Verwenden Sie als Alternative ggf. verwaltete Identitäten (sofern verfügbar), um zu vermeiden, dass die Verwendung von Anmeldeinformationen erforderlich ist.
Nächste Schritte
Sie wissen jetzt, wie Sie einen Azure-Dienstprinzipal erstellen. Fahren Sie mit dem nächsten Schritt fort, um zu erfahren, wie Sie Dienstprinzipale mit kennwortbasierter Authentifizierung verwenden.
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu Azure CLI
Azure CLI ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Es wird beschrieben, wie Sie Berechtigungen erstellen, verwalten und für Dienstprinzipale gewähren, mit denen für Ihre Bereitstellungspipelines die sichere Authentifizierung für Azure durchgeführt werden kann.
Veranschaulichen der Features von Microsoft Entra ID, um Identitätslösungen zu modernisieren sowie Hybridlösungen und Identitätsgovernance zu implementieren