Freigeben über


Abrufen von Microsoft Entra ID-Token für Dienstprinzipale

Wichtig

In diesem Abschnitt wird beschrieben, wie Sie Microsoft Entra ID-Token für Dienstprinzipale manuell abrufen.

Verwaltete Dienstprinzipale 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 für die meisten Anwendungsfälle durch Azure Databricks verwaltete Dienstprinzipale zu verwenden. Databricks empfiehlt jedoch auch, 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-Tokens für Microsoft Entra ID-Dienstprinzipale manuell zu erstellen. Der Grund dafür ist, dass jedes Microsoft Entra ID-Token kurzlebig ist und normalerweise innerhalb einer Stunde abläuft. Nach diesem Zeitpunkt müssen Sie manuell ein Microsoft Entra ID-Ersatztoken generieren. Verwenden Sie stattdessen eines der teilnehmenden Tools oder SDKs, die den Databricks-Clientstandard für die einheitliche Authentifizierung implementieren. Diese Tools und SDKs generieren und ersetzen automatisch abgelaufene Microsoft Entra ID-Tokens für Sie, wobei die folgenden Databricks-Authentifizierungstypen verwendet werden:

Wenn Sie nicht über einen Dienstprinzipal verfügen, können Sie einen Dienstprinzipal bereitstellen, indem Sie eine der folgenden Anweisungen befolgen:

In diesem Artikel wird beschrieben, wie ein in Microsoft Entra ID definierter Dienstprinzipal zudem als Prinzipal fungieren kann, für den Authentifizierungs- und Autorisierungsrichtlinien in Azure Databricks erzwungen werden können. Dienstprinzipale in einem Azure Databricks-Arbeitsbereich können eine unterschiedliche differenzierte Zugriffssteuerung aufweisen als reguläre Benutzer (Benutzerprinzipale).

Ein Dienstprinzipal fungiert als Clientrolle und verwendet den OAuth 2.0-Clientanmeldeinformationsflow, um den Zugriff auf Azure Databricks-Ressourcen zu autorisieren.

Sie können Dienstprinzipale in Databricks oder mithilfe des folgenden Verfahrens über das Azure-Portal verwalten.

Sie können auch die Microsoft-Authentifizierungsbibliothek (MSAL, Microsoft Authentication Library) verwenden, um programmgesteuert ein Microsoft Entra ID-Zugriffstoken für einen Benutzer anstelle eines Dienstprinzipals abzurufen. Weitere Informationen finden Sie unter Abrufen von Microsoft Entra ID-Token für Benutzer mithilfe von MSAL.

Bereitstellen eines Dienstprinzipals im Azure-Portal

  1. Melden Sie sich beim Azure-Portal an.

    Hinweis

    Welches Portal Sie verwenden müssen, hängt davon ab, ob Ihre Microsoft Entra ID-Anwendung in der öffentlichen Cloud von Azure oder in einer nationalen oder Sovereign Cloud ausgeführt wird. Weitere Informationen finden Sie unter Nationale Clouds.

  2. Wenn Sie Zugriff auf mehrere Mandanten, Abonnements oder Verzeichnisse haben, klicken Sie im oberen Menü auf das Symbol Verzeichnisse und Abonnements (Verzeichnis mit Filter), um zu dem Verzeichnis zu wechseln, in dem Sie den Dienstprinzipal bereitstellen möchten.

  3. Suchen Sie in Ressourcen, Dienste und Dokumente suchen nach Microsoft Entra ID, und wählen Sie den Dienst aus.

  4. Klicken Sie auf + Hinzufügen, und wählen Sie App-Registrierung aus.

  5. Geben Sie für Name einen Namen für die Anwendung ein.

  6. Wählen Sie im Abschnitt Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis (einzelner Mandant) aus.

  7. Klicken Sie auf Registrieren.

  8. Kopieren Sie auf der Seite Übersicht der Anwendungsseite im Abschnitt Zusammenfassung die folgenden Werte:

    • Anwendungs-ID (Client)
    • Verzeichnis-ID (Mandant)
  9. Wählen Sie zum Generieren eines geheimen Clientschlüssels unter Verwalten die Option Zertifikate und Geheimnisse aus.

    Hinweis

    Sie verwenden diesen geheimen Clientschlüssel, um Microsoft Entra ID-Token für die Authentifizierung von Microsoft Entra ID-Dienstprinzipale bei Azure Databricks zu generieren. Informationen dazu, ob ein Azure Databricks-Tool oder ein SDK Microsoft Entra ID-Token verwenden kann, finden Sie in der Dokumentation des Tools oder SDK.

  10. Klicken Sie auf der Registerkarte Geheime Clientschlüssel auf Neuer geheimer Clientschlüssel.

    Neuer geheimer Clientschlüssel

  11. Geben Sie im Bereich Geheimen Clientschlüssel hinzufügen unter Beschreibung eine Beschreibung für den geheimen Clientschlüssel ein.

  12. Wählen Sie unter Ablauf einen Ablaufzeitzeitraum für den geheimen Clientschlüssel aus, und klicken Sie dann auf Hinzufügen.

  13. Kopieren Sie den Wert des geheimen Clientschlüssels, und speichern Sie ihn an einem sicheren Ort, da dieser geheime Clientschlüssel das Kennwort für Ihre Anwendung ist.

Bereitstellen eines Dienstprinzipals mit der Azure-Befehlszeilenschnittstelle

Siehe Erstellen einer Microsoft Entra ID-Dienstprinzipal (ehemals Azure Active Directory) mit der Azure CLI.

Abrufen eines Microsoft Entra ID-Zugriffstokens mit der Microsoft Identity Platform-REST-API

Wichtig

In diesem Abschnitt wird beschrieben, wie Sie mithilfe der Microsoft Identity Platform-REST-API manuell ein Microsoft Entra ID-Token für einen Dienstprinzipal abrufen.

Databricks empfiehlt nicht, Microsoft Entra ID-Tokens für Microsoft Entra ID-Dienstprinzipale manuell zu erstellen. Der Grund dafür ist, dass jedes Microsoft Entra ID-Token kurzlebig ist und normalerweise innerhalb einer Stunde abläuft. Nach diesem Zeitpunkt müssen Sie manuell ein Microsoft Entra ID-Ersatztoken generieren. Verwenden Sie stattdessen eines der teilnehmenden Tools oder SDKs, die den Databricks-Clientstandard für die einheitliche Authentifizierung implementieren. Diese Tools und SDKs generieren und ersetzen automatisch abgelaufene Microsoft Entra ID-Tokens für Sie, wobei die folgenden Databricks-Authentifizierungstypen verwendet werden:

Um mit dem Dienstprinzipal auf die Databricks-REST-API zuzugreifen, erhalten Sie ein Microsoft Entra ID-Zugriffstoken für den Dienstprinzipal. Weitere Informationen finden Sie unter Erster Fall: Zugriffstokenanforderung mit einem gemeinsamen Geheimnis.

Tipp

Sie können auch die Azure CLI verwenden, um das Microsoft Entra ID-Zugriffstoken abzurufen. Weitere Informationen finden Sie unter Erhalten eines Microsoft Entra ID-Zugriffstokens mithilfe der Azure CLI.

  1. 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 Value des geheimen Clientschlüssels für die zugehörige in Microsoft Entra ID registrierte Anwendung.
  2. Verwenden Sie die oben genannten Informationen zusammen mit curl, um das Microsoft Entra ID-Zugriffstoken abzurufen.

    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
    https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \
    -d 'client_id=<client-id>' \
    -d 'grant_type=client_credentials' \
    -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \
    -d 'client_secret=<client-secret>'
    

    Ersetzen Sie:

    • <tenant-id> durch die Mandanten-ID der registrierten Anwendung.
    • <client-id> durch die Client-ID der registrierten Anwendung.
    • <client-secret> durch den Wert des geheimen Clientschlüssels der registrierten Anwendung.

    Der Wert des scope-Parameters darf nicht geändert werden. Er entspricht der programmgesteuerten ID für Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d) sowie dem Standardbereich (/.default, URL-codiert %2f.default).

    Beispiel:

    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
    https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/token \
    -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \
    -d 'grant_type=client_credentials' \
    -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \
    -d 'client_secret=abc1D~Ef...2ghIJKlM3'
    

    Das Microsoft Entra ID-Zugriffstoken befindet sich im access_token-Wert innerhalb der Ausgabe des Aufrufs.

Erhalten eines Microsoft Entra ID-Zugriffstokens mithilfe der Azure CLI

Wichtig

In diesem Abschnitt wird beschrieben, wie Sie mithilfe der Azure CLI manuell ein Microsoft Entra ID-Token für einen Dienstprinzipal erhalten.

Databricks empfiehlt nicht, Microsoft Entra ID-Tokens für Microsoft Entra ID-Dienstprinzipale manuell zu erstellen. Der Grund dafür ist, dass jedes Microsoft Entra ID-Token kurzlebig ist und normalerweise innerhalb einer Stunde abläuft. Nach diesem Zeitpunkt müssen Sie manuell ein Microsoft Entra ID-Ersatztoken generieren. Verwenden Sie stattdessen eines der teilnehmenden Tools oder SDKs, die den Databricks-Clientstandard für die einheitliche Authentifizierung implementieren. Diese Tools und SDKs generieren und ersetzen automatisch abgelaufene Microsoft Entra ID-Tokens für Sie, wobei die folgenden Databricks-Authentifizierungstypen verwendet werden:

Um mit dem Dienstprinzipal auf die Databricks-REST-API zuzugreifen, erhalten Sie ein Microsoft Entra ID-Zugriffstoken für den Dienstprinzipal.

  1. 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 Value des geheimen Clientschlüssels für die zugehörige in Microsoft Entra ID registrierte Anwendung.
  2. 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 auf der oberen Navigationsleiste Ihres Azure Databricks-Arbeitsbereichs auf Ihren Benutzernamen, und wählen Sie Azure-Portal aus. 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, indem Sie die Optionen --query und -o oder --output verwenden, um die Ergebnisse einzugrenzen. Ersetzen Sie adb-0000000000000000.0.azuredatabricks.net durch den Namen Ihrer Arbeitsbereichsinstanz ohne https://. In diesem Beispiel ist 00000000-0000-0000-0000-000000000000 nach /subscriptions/ in der Ausgabe 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 bei dem falschen Mandanten angemeldet: The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'. Um sich bei dem richtigen Mandanten anzumelden, müssen Sie den az login-Befehl erneut ausführen und dabei 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 nach < location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000 suchen, wobei 00000000-0000-0000-0000-000000000000 die Mandanten-ID ist. Siehe auch Abrufen von Abonnement- und Mandanten-IDs im Azure-Portal.

      az login -t <tenant-id>
      
  3. 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 den Werten für die Parameter Tenant ID (Directory (tenant) ID), Client ID (Application (client) ID) und Client secret (Value) für die zugehörige Anwendung, die in Microsoft Entra ID registriert ist.

    az login \
    --service-principal \
    -t <Tenant-ID> \
    -u <Client-ID> \
    -p <Client-secret>
    
  4. 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. Verwenden Sie dabei die Option -s oder --subscription, um die richtige Abonnement-ID anzugeben.

    az account set -s <subscription-id>
    
  5. 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 --resource-Option, um die eindeutige Ressourcen-ID für den Azure Databricks-Dienst anzugeben, nämlich 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d. Sie können nur den Wert des Microsoft Entra ID-Token in der Ausgabe des Befehls anzeigen, indem Sie die Optionen --query und -o oder --outputverwenden.

    az account get-access-token \
    --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \
    --query "accessToken" \
    -o tsv
    

Verwenden des Microsoft Entra ID-Zugriffstokens des Dienstprinzipals für den Zugriff auf die Databricks-REST-API

Wichtig

In diesem Abschnitt wird beschrieben, wie Sie curl und das Microsoft Entra ID-Zugriffstoken eines Dienstprinzipals verwenden, um auf die Databricks-REST-API zuzugreifen.

Verwenden Sie anstelle von curl eines der teilnehmenden Tools oder SDKs, die den Databricks-Clientstandard für die einheitliche Authentifizierung implementieren. Diese Tools und SDKs generieren und ersetzen auch automatisch abgelaufene Microsoft Entra ID-Tokens für Sie, wobei die folgenden Databricks-Authentifizierungstypen verwendet werden:

Ein Dienstprinzipal, der ein Databricks-Benutzer ist, kann sich mit Microsoft Entra ID-Token bei der Databricks-REST-API authentifizieren.

Ein Dienstprinzipal kann sich auch als Arbeitsbereichsadministrator zu einem Arbeitsbereich hinzufügen, wenn er die Rolle „Mitwirkender“ oder „Besitzer“ für die Zielarbeitsbereichsressource in Azure besitzt. Wenn der Dienstprinzipal ein Mitwirkender oder Besitzer im Zielarbeitsbereich ist und Sie ihn mithilfe des Microsoft Entra ID-Tokens einem Arbeitsbereich hinzufügen möchten, sollten Sie zu API-Zugriff auf Arbeitsbereichsebene für Dienstprinzipale, die keine Azure Databricks-Benutzer sind wechseln.

Fahren Sie andernfalls mit API-Zugriff für Dienstprinzipale, die Azure Databricks-Benutzer und -Administratoren sind fort.

API-Zugriff für Dienstprinzipale, die Azure Databricks-Benutzer und -Administratoren sind

Um dieses Verfahren abzuschließen, müssen Sie zuerst den Dienstprinzipal dem Azure Databricks-Konto oder -Arbeitsbereich hinzufügen. Sie können Ihren Dienstprinzipal direkt zu Ihrem Konto hinzufügen, ohne diesem Zugriff auf den Arbeitsbereich zu gewähren. Verwenden Sie dafür die SCIM-API (Konto).

Sie können Ihren Dienstprinzipal einem Arbeitsbereich hinzufügen, indem Sie den Endpunkt Dienstprinzipal-API verwenden. Dadurch wird der Dienstprinzipal auch zu Ihrem Azure Databricks-Konto hinzugefügt. Beispiel:

Bei Verwendung von Databricks CLI-Version 0.205 oder höher (empfohlen):

Fügen Sie den Dienstprinzipal hinzu:

databricks service-principals create --application-id 12a34b56-789c-0d12-e3fa-b456789c0123 --display-name "My Service Principal" -p <profile-name-that-references-calling-users-access-token>

Aktualisieren Sie die Arbeitsbereichsberechtigungen des Dienstprinzipals:

databricks service-principals patch 1234567890123456 --json @update-service-principal.json -p <profile-name-that-references-access-token>

update-service-principal.json:

{
  "Operations": [
    {
      "op": "add",
      "path": "entitlements",
      "value": {
        "value": "workspace-acccess",
        "value": "allow-cluster-create",
        "value": "databricks-sql-access"
      }
    }
  ],
  "schema": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ]
}

Weitere Informationen finden Sie unter Authentifizierung für die Databricks CLI.

Bei Verwendung von curl:

curl -X POST \
-H 'Authorization: Bearer <access-token>' \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/preview/scim/v2/ServicePrincipals \
-H 'Content-type: application/scim+json' \
-d @create-service-principal.json

create-service-principal.json:

{
  "displayName": "My Service Principal",
  "applicationId": "12a34b56-789c-0d12-e3fa-b456789c0123",
  "entitlements": [
    {
      "value": "allow-cluster-create"
    }
  ],
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal"
  ],
  "active": true
}

Fahren Sie mit API-Zugriff auf Arbeitsbereichsebene für Dienstprinzipale, die keine Azure Databricks-Benutzer sind fort, wenn einer der folgenden Punkte zutrifft:

  • Die Azure Databricks-REST-API, die Sie aufrufen möchten, erfordert Administratorzugriff auf den Arbeitsbereich. Der Dienstprinzipal ist ein Mitglied des Arbeitsbereichs, hat aber derzeit keinen Administratorzugriff auf den Arbeitsbereich.
  • Der Dienstprinzipal wurde dem gewünschten Azure Databricks-Arbeitsbereich noch nicht hinzugefügt.
  1. Sammeln Sie die folgenden Informationen.

    Parameter Beschreibung
    Microsoft Entra ID-Zugriffstoken Das Microsoft Entra ID-Zugriffstoken, das von der Anforderung in Abrufen eines Microsoft Entra ID-Zugriffstokens mit der REST-API der Microsoft-Identitätsplattform oder Abrufen eines Microsoft Entra ID-Zugriffstokens mit der Azure CLI zurückgegeben wurde.
  2. Verwenden Sie das Microsoft Entra ID-Zugriffstoken zusammen mit curl, um die Databricks-REST-API aufzurufen. Beispiel:

    Bei Verwendung von Databricks CLI-Version 0.205 oder höher (empfohlen):

    databricks clusters list -p <profile-name-that-references-azure-ad-access-token>
    

    Weitere Informationen finden Sie unter Authentifizierung für die Databricks CLI.

    Bei Verwendung von curl:

    curl -X GET \
    -H 'Authorization: Bearer <access-token>' \
    https://<databricks-instance>/api/2.0/clusters/list
    

    Ersetzen Sie:

    • <access-token> mit dem Microsoft Entra ID-Zugriffstoken.
    • <databricks-instance> durch die Arbeitsbereichsspezifische URL Ihrer Azure Databricks-Bereitstellung.
    • GET und /api/2.0/clusters/list durch den entsprechenden HTTP-Vorgang und Endpunkt für die gewünschte Databricks-Ziel-REST-API.

    Beispiel:

    curl -X GET \
    -H 'Authorization: Bearer <access-token>' \
    https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list
    

API-Zugriff auf Arbeitsbereichsebene für Dienstprinzipale, die keine Azure Databricks-Benutzer sind

Gehen Sie wie folgt vor, wenn einer der folgenden Punkte zutrifft:

  • Die Azure Databricks-REST-API, die Sie aufrufen möchten, erfordert Administratorzugriff auf den Arbeitsbereich. Der Dienstprinzipal ist ein Mitglied des Arbeitsbereichs, hat aber derzeit keinen Administratorzugriff auf den Arbeitsbereich.
  • Der Dienstprinzipal wurde dem gewünschten Azure Databricks-Arbeitsbereich noch nicht hinzugefügt.

Anforderungen:

  • Der Dienstprinzipal muss die Rolle „Mitwirkender“ oder „Besitzer“ für die gewünschte Arbeitsbereichsressource in Azure aufweisen.
  1. Sammeln Sie die folgenden Informationen:

    Parameter Beschreibung
    Mandanten-ID Die Verzeichnis-ID (Mandant) für die zugehörige Anwendung, die in Microsoft Entra ID unter Bereitstellen eines Dienstprinzipals im Azure-Portal registriert ist.
    Client ID Die Anwendungs-ID (Client) für die zugehörige in Microsoft Entra ID registrierte Anwendung.
    Geheimer Clientschlüssel Der Wert des geheimen Clientschlüssels für die in Microsoft Entra ID registrierte zugehörige Anwendung, die Sie unter Bereitstellen eines Dienstprinzipals im Azure-Portal erstellt haben.
    Microsoft Entra ID-Zugriffstoken Das Microsoft Entra ID-Zugriffstoken, das von der Anforderung in Abrufen eines Microsoft Entra ID-Zugriffstokens mit der REST-API der Microsoft-Identitätsplattform oder Abrufen eines Microsoft Entra ID-Zugriffstokens mit der Azure CLI zurückgegeben wurde.
    Abonnement-ID Die ID (nicht der Name) des Abonnements, die dem gewünschten Azure Databricks-Arbeitsbereich zugeordnet ist. Wie Sie diese und die folgenden Informationen abrufen, erfahren Sie unter Öffnen von Ressourcen. Zum Öffnen der gewünschten Ressource können Sie in Azure nach dem Azure Databricks-Diensttyp und anderen Informationen zum gewünschten Azure Databricks-Arbeitsbereich suchen, die Sie kennen.
    Ressourcengruppenname Der Name der Azure-Ressourcengruppe, die dem gewünschten Azure Databricks-Arbeitsbereich zugeordnet ist.
    Arbeitsbereichname Der Name des gewünschten Azure Databricks-Arbeitsbereichs in Azure.
  2. Verwenden Sie einige der oben genannten Informationen zusammen mit curl, um ein Microsoft Entra ID-Verwaltungsendpunkt-Zugriffstoken abzurufen.

    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
    https://login.microsoftonline.com/<tenant-id>/oauth2/token \
    -d 'client_id=<client-id>' \
    -d 'grant_type=client_credentials' \
    -d 'resource=https%3A%2F%2Fmanagement.core.windows.net%2F' \
    -d 'client_secret=<client-secret>'
    

    Ersetzen Sie:

    • <tenant-id> durch die Mandanten-ID der registrierten Anwendung.
    • <client-id> durch die Client-ID der registrierten Anwendung.
    • <client-secret> durch den Wert des geheimen Clientschlüssels der registrierten Anwendung.

    Der Wert des resource-Parameters darf nicht geändert werden. Er stellt den Microsoft Entra ID-Verwaltungsendpunkt dar (https://management.core.windows.net/, URL-codiert als https%3A%2F%2Fmanagement.core.windows.net%2F).

    Beispiel:

    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
    https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/token \
    -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \
    -d 'grant_type=client_credentials' \
    -d 'resource=https%3A%2F%2Fmanagement.core.windows.net%2F' \
    -d 'client_secret=abc1D~Ef...2ghIJKlM3'
    

    Das Microsoft Entra ID-Verwaltungsendpunkt-Zugriffstoken befindet sich im access_token-Wert innerhalb der Ausgabe des Aufrufs.

  3. Verwenden Sie das Microsoft Entra ID-Verwaltungsendpunkt-Zugriffstoken zusammen mit den restlichen oben genannten Informationen und curl, um die Databricks-REST-API aufzurufen, z. B.:

     curl -X GET \
     -H 'Authorization: Bearer <access-token>' \
     -H 'X-Databricks-Azure-SP-Management-Token: <management-access-token>' \
     -H 'X-Databricks-Azure-Workspace-Resource-Id: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/workspaces/<workspace-name>' \
     https://<databricks-instance>/api/2.0/clusters/list
    

    Ersetzen Sie:

    • <access-token> mit dem Microsoft Entra ID-Zugriffstoken.

      • <management-access-token> mit dem Microsoft Entra ID-Verwaltungsendpunkt-Zugriffstoken.
      • <subscription-id> durch die ID des Abonnements, das dem gewünschten Azure Databricks-Arbeitsbereich zugeordnet ist.
      • <resource-group-name> durch den Namen der Ressourcengruppe, die dem gewünschten Azure Databricks-Arbeitsbereich zugeordnet ist.
      • <workspace-name> durch den Namen des gewünschten Azure Databricks-Arbeitsbereichs.
      • <databricks-instance> durch die Arbeitsbereichsspezifische URL Ihrer Azure Databricks-Bereitstellung.
      • GET und /api/2.0/clusters/list durch den entsprechenden HTTP-Vorgang und Endpunkt für die gewünschte Databricks-Ziel-REST-API.

      Beispiel:

      curl -X GET \
      -H 'Authorization:Bearer <access-token>' \
      -H 'X-Databricks-Azure-SP-Management-Token: abC1dE...ghIj23kl' \
      -H 'X-Databricks-Azure-Workspace-Resource-Id: /subscriptions/12a345...bcd6789e/resourceGroups/my-resource-group/providers/Microsoft.Databricks/workspaces/my-workspace' \
      https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list
      

    Nach der Authentifizierung beim Arbeitsbereich wird der Dienstprinzipal zum Azure Databricks-Arbeitsbereichsadministrator und benötigt die Rolle „Mitwirkender“ oder „Besitzer“ nicht mehr, um auf den Arbeitsbereich zuzugreifen.