Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Automatisierte Tools, die Azure-Dienste verwenden, sollten immer über eingeschränkte Berechtigungen verfügen, um sicherzustellen, dass Azure-Ressourcen sicher sind. Statt dass sich Anwendungen mit vollständigen Benutzerrechten anmelden, bietet Azure sogenannte Dienstprinzipale. Ein Azure-Dienstprinzipal ist eine Identität, die für die Verwendung mit Anwendungen, gehosteten Diensten und automatisierten Tools erstellt wurde. Diese Identität wird für den Zugriff auf Ressourcen verwendet.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen eines Diensthauptkontos
- Anmelden mit einem Dienstprinzipal und Kennwort
- Anmelden mit einem Service-Konto und Zertifikat
- Service-Prinzipal-Rollen verwalten
- Erstellen einer Azure-Ressource mithilfe eines Dienstprinzipals
- Zurücksetzen der Dienstkontozugangsdaten
Voraussetzungen
- Um in einem Abonnement einen Dienstprinzipal zu erstellen, müssen Sie über
User Access Administrator
- oderRole Based Access Control Administrator
-Berechtigungen oder höhere Berechtigungen verfügen. Eine Liste der Rollen, die für die rollenbasierte Zugriffssteuerung (Azure RBAC) verfügbar sind, finden Sie in den integrierten Azure-Rollen.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, installieren Sie die Azure CLI. Wenn Sie mit Windows oder macOS arbeiten, 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. Um den Authentifizierungsprozess abzuschließen, führen Sie die schritte aus, die in Ihrem Terminal angezeigt werden. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten 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 auf die neueste Version zu aktualisieren.
Erstellen eines Diensthauptkontos
Verwenden Sie den Azure CLI-Referenzbefehl "az ad sp create-for-rbac", um einen Dienstprinzipal zu erstellen.
In diesem Beispiel wird kein Parameter angegeben --name
, daher wird automatisch ein Name erstellt, der einen Zeitstempel enthält.
az ad sp create-for-rbac
Ausgabekonsole:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Wenn Sie keine Konventionen für die Ressourcenbenennung einhalten und planen, später eine Rolle und einen Bereich für den neuen Dienstprinzipal zu erstellen, ist der az ad sp create-for-rbac
Befehl ohne Parameter eine sinnvolle Lösung. Ohne Rolle und Bereich hat der neue Dienstprinzipal jedoch keinen Zugriff auf Ressourcen. Es ist einfach vorhanden.
Wenn Sie einen Dienstprinzipal ohne Parameter erstellen, führen Sie auch die folgenden Schritte aus:
- Notieren Sie Ihr vom System zugewiesenes Kennwort, da Sie es nicht erneut abrufen können. Wenn Sie das Kennwort verlieren, setzen Sie es mithilfe von az ad sp credential reset zurück, wie unter „Anmeldeinformationen des Dienstprinzipals zurücksetzen“ erläutert.
- Legen Sie die Rollenzuweisung für Ihren neuen Dienstprinzipal fest, indem Sie az role assignment create verwenden, wie in "Dienstprinzipalrollen verwalten" erläutert.
Hinweis
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 die für die Microsoft Entra-Administration zuständige Person, um einen Dienstprinzipal zu erstellen.
In einem Microsoft Entra-ID-Verzeichnis, in dem Benutzereinstellung Benutzer können Anwendungen registrieren , auf "Nein" festgelegt wurde, müssen Sie Mitglied einer der folgenden integrierten Microsoft Entra-ID-Rollen sein (die über die Aktion verfügen: microsoft.directory/applications/createAsOwner
oder microsoft.directory/applications/create
):
- Anwendungsentwickler
- Anwendungsadministrator
- Cloudanwendungsadministrator
- Globaler Administrator
- Hybrididentitätsadministrator
Weitere Informationen zu Den Benutzereinstellungen in der Microsoft Entra-ID finden Sie unter Einschränken, wer Anwendungen erstellen kann.
Erstellen eines Dienstprinzipals mit Rolle und Geltungsbereich
Weisen Sie als bewährte Methode immer einen bestimmten --role
und --scopes
zu, wenn Sie einen Dienstprinzipal erstellen. Folgen Sie diesen Schritten:
Bestimmen Sie die richtige Rolle.
Verwenden Sie beim Bestimmen der Rolle immer das Prinzip der geringsten Rechte. Geben Sie Ihrem Dienstprinzipal
contributor
beispielsweise keine Berechtigungen für ein Abonnement, wenn der Dienstprinzipal nur auf Azure Storage innerhalb einer Ressourcengruppe zugreifen muss. Berücksichtigen Sie eine spezielle Rolle wie Speicher-Blob-Daten-Mitwirkender. Eine vollständige Liste der Rollen, die in Azure RBAC verfügbar sind, finden Sie unter Integrierten Azure-Rollen.Erhalte einen Wert für den Bereichsparameter.
Suchen und kopieren Sie die Ressourcen-ID der Azure-Ressource , auf die der neue Dienstprinzipal zugreifen muss. 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.Umfang Beispiel Abonnement /subscriptions/mySubscriptionID
Ressourcengruppe /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Virtuelle Maschine /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Speicherkonto-Dateidienst /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Datenfabrik /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Weitere Beispiele mit Gültigkeitsbereichen finden Sie unter Verstehen des Gültigkeitsbereichs für Azure RBAC.
Erstellen Sie den Dienstprinzipal.
In diesem Beispiel wird ein neuer Dienstprinzipal namens myServicePrincipalName1 mit Leseberechtigungen für alle Ressourcen in der Ressourcengruppe RG1 erstellt.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
Der
--scopes
Parameter akzeptiert eine durch Leerzeichen getrennte Liste von Bereichen. In diesem Beispiel wird ein neuer Dienstprinzipal namens myServicePrincipalName2 mit Leseberechtigungen für alle Ressourcen in der Ressourcengruppe myRG1 erstellt. Dieser Dienstprinzipal erhält auch Leseberechtigungen für myVM, die sich in myRG2 befinden.# Bash script az ad sp create-for-rbac --name myServicePrincipalName2 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
Wenn Sie ihrem 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 auch einen Dienstprinzipal 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
Eine vollständige Liste der Dienstprinzipaleigenschaften finden Sie in der az ad sp-Liste und unter Abrufen eines vorhandenen Dienstprinzipals.
Warnung
Wenn Sie einen Azure-Dienstprinzipal mithilfe des az ad sp create-for-rbac
Befehls erstellen, enthält die Ausgabe Anmeldeinformationen, die Sie schützen müssen. Schließen Sie diese Anmeldeinformationen nicht in Ihren Code ein, und checken Sie sie nicht in Ihre Quellcodeverwaltung ein. Alternativ können Sie verwaltete Identitäten verwenden, um die Notwendigkeit der Verwendung von Anmeldeinformationen zu vermeiden.
Nächste Schritte
Nachdem Sie nun erfahren haben, wie Sie einen Azure-Dienstprinzipal erstellen, fahren Sie mit dem nächsten Schritt fort, um zu erfahren, wie Sie Dienstprinzipale mit kennwortbasierter Authentifizierung verwenden.