Abrufen von Microsoft Entra ID-Token für Microsoft Entra ID-Dienstprinzipale mithilfe der Azure-Befehlszeilenschnittstelle
Wichtig
In diesem Artikel wird beschrieben, wie Sie Microsoft Entra-ID-Token für Microsoft Entra ID-Dienstprinzipale mithilfe der Azure CLI manuell erstellen.
Verwaltete Diensteprinzipale von Azure Databricks werden direkt in Azure Databricks verwaltet. Verwaltete Dienstprinzipale der Microsoft Entra ID werden in der Microsoft Entra ID verwaltet, die zusätzliche Berechtigungen erfordert. Databricks empfiehlt, azure Databricks managed service principals für die meisten Anwendungsfälle zu verwenden. Databricks empfiehlt jedoch, verwaltete Dienstprinzipale von Microsoft Entra ID in Fällen zu verwenden, in denen Sie sich bei Azure Databricks und anderen Azure-Ressourcen gleichzeitig authentifizieren müssen.
Informationen zum Erstellen eines verwalteten Dienstprinzipals von Azure Databricks anstelle eines verwalteten Dienstprinzipals von Microsoft Entra ID finden Sie unter Verwalten von Dienstprinzipalen.
Databricks empfiehlt nicht, Microsoft Entra-ID-Token für Microsoft Entra ID-Dienstprinzipale manuell zu erstellen. Dies liegt daran, dass jedes Microsoft Entra-ID-Token kurzlebig ist und normalerweise innerhalb einer Stunde abläuft. Nach diesem Zeitpunkt müssen Sie manuell ein Ersatztoken für Microsoft Entra-ID generieren. Verwenden Sie stattdessen eines der teilnehmenden Tools oder SDKs, die den Databricks-Client für einheitliche Authentifizierung Standard implementieren. Diese Tools und SDKs generieren und ersetzen automatisch abgelaufene Microsoft Entra-ID-Token für Sie und nutzen die folgenden Databricks-Authentifizierungstypen:
Sie können die Azure CLI verwenden, um Microsoft Entra ID-Zugriffstoken für Microsoft Entra ID-Dienstprinzipale abzurufen.
Sammeln Sie die folgenden Informationen:
Parameter Beschreibung Tenant ID
Directory (tenant) ID
für die zugehörige in Microsoft Entra ID registrierte Anwendung.Client ID
Application (client) ID
für die zugehörige in Microsoft Entra ID registrierte Anwendung.Client secret
Die Value
des Clientgeheimnisses für die zugehörige Anwendung, die in Microsoft Entra ID registriert ist.Rufen Sie die richtige Azure-Abonnement-ID für den Microsoft Entra ID-Dienstprinzipal ab, wenn Sie diese ID noch nicht kennen. Gehen Sie dazu wie folgt vor:
Klicken Sie in der oberen Navigationsleiste Ihres Azure Databricks-Arbeitsbereichs auf Ihren Benutzernamen, und klicken Sie dann auf Azure Portal. Klicken Sie auf der angezeigten Ressourcenseite des Azure Databricks-Arbeitsbereichs in der Seitenleiste auf Übersicht. Suchen Sie dann nach dem Feld Abonnement-ID, das die Abonnement-ID enthält.
Verwenden Sie die Azure CLI, um den Befehl az databricks workspace list auszuführen, und nutzen Sie die Optionen
--query
und-o
oder--output
, um die Ergebnisse einzugrenzen. Ersetzen Sieadb-0000000000000000.0.azuredatabricks.net
durch den Namen Ihrer Arbeitsbereichsinstanz ohnehttps://
. In diesem Beispiel ist die00000000-0000-0000-0000-000000000000
, die nach/subscriptions/
in der Ausgabe angezeigt wird, die Abonnement-ID.az databricks workspace list --query "[?workspaceUrl==\`adb-0000000000000000.0.azuredatabricks.net\`].{id:id}" -o tsv # /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Databricks/workspaces/my-ws
Wenn die folgende Meldung angezeigt wird, sind Sie beim falschen Mandanten angemeldet:
The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'.
Um sich beim richtigen Mandanten anzumelden, müssen Sie den befehlaz login
erneut ausführen, indem Sie die option-t
oder--tenant
verwenden, um die richtige Mandanten-ID anzugeben.Sie können die Mandanten-ID für einen Azure Databricks-Arbeitsbereich abrufen, indem Sie den Befehl
curl -v <per-workspace-URL>/aad/auth
ausführen und in der Ausgabe< location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000
suchen, wobei00000000-0000-0000-0000-000000000000
die Mandanten-ID ist. Siehe auch Abrufen von Abonnement- und Mandanten-IDs im Azure-Portal.az login -t <tenant-id>
Wenn Sie über die richtigen Werte für die Azure-Mandanten-ID, die Client-ID, den geheimen Clientschlüssel und die Abonnement-ID für Ihren Microsoft Entra ID-Dienstprinzipal verfügen, melden Sie sich mit der Azure CLI bei Azure an, um den Befehl az login auszuführen. Verwenden Sie die Option
--service-principal
zusammen mit der Angabe der Werte für die ParameterTenant ID
(Directory (tenant) ID
),Client ID
(Application (client) ID
) undClient secret
(Value
) für die zugehörige Anwendung, die in der Microsoft Entra-ID registriert ist.az login \ --service-principal \ -t <Tenant-ID> \ -u <Client-ID> \ -p <Client-secret>
Vergewissern Sie sich, dass Sie beim richtigen Abonnement für den angemeldeten Microsoft Entra ID-Dienstprinzipal angemeldet sind. Führen Sie dazu den Befehl "az account set" aus, indem Sie die Option
-s
oder--subscription
verwenden, um die richtige Abonnement-ID anzugeben.az account set -s <subscription-id>
Generieren Sie das Microsoft Entra ID-Zugriffstoken für den angemeldeten Microsoft Entra ID-Dienstprinzipal, indem Sie den Befehl az account get-access-token ausführen. Verwenden Sie die Option
--resource
, um die eindeutige Ressourcen-ID für den Azure Databricks-Dienst anzugeben, der2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
ist. Sie können nur den Wert des Microsoft Entra-ID-Tokens in der Ausgabe des Befehls anzeigen, indem Sie die Optionen--query
und-o
oder--output
verwenden.az account get-access-token \ --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \ --query "accessToken" \ -o tsv
Anmerkung
Die MSAL-basierte Azure CLI- verwendet Microsoft Authentication Library (MSAL) als zugrunde liegende Authentifizierungsbibliothek. Wenn Sie das von der Azure CLI generierte Microsoft Entra ID-Zugriffstoken nicht erfolgreich verwenden können, können Sie alternativ versuchen, MSAL direkt zu verwenden, um ein Microsoft Entra ID-Zugriffstoken für einen Microsoft Entra ID-Dienstprinzipal abzurufen. Weitere Informationen finden Sie unter Abrufen von Microsoft Entra ID-Token für Dienstprinzipale.