Freigeben über


Microsoft Entra ID-Dienstprinzipalauthentifizierung

Die Authentifizierung über Microsoft Entra ID-Dienstprinzipale verwendet zur Authentifizierung die Anmeldeinformationen eines Microsoft Entra ID-Dienstprinzipals. Informationen zum Erstellen und Verwalten von Dienstprinzipalen für Azure Databricks finden Sie unter:

Hinweis

Databricks empfiehlt für die meisten Szenarien, die OAuth-Computer-zu-Computer-Authentifizierung (M2M) anstelle der Microsoft Entra ID-Dienstprinzipalauthentifizierung zu verwenden. Grund dafür ist, dass die OAuth M2M-Authentifizierung Azure Databricks OAuth-Zugriffstoken nutzt, die stabiler sind, wenn die Authentifizierung nur mit Azure Databricks erfolgt.

Sie sollten die Microsoft Entra ID-Dienstprinzipalauthentifizierung nur in Fällen verwenden, in denen Sie sich bei Azure Databricks und anderen Azure-Ressourcen gleichzeitig authentifizieren müssen, was Microsoft Entra ID-Token erfordert.

Um die OAuth M2M-Authentifizierung anstelle der Microsoft Entra ID-Dienstprinzipalauthentifizierung zu verwenden, überspringen Sie diesen Artikel, und lesen Sie OAuth-Computer-zu-Computer-Authentifizierung (M2M).

Microsoft Entra ID-Dienstprinzipale unterscheiden sich von verwalteten Identitäten für Azure-Ressourcen, die Azure Databricks auch für die Authentifizierung unterstützt. Informationen zum Verwenden verwalteter Identitäten für Azure-Ressourcen anstelle von Microsoft Entra ID-Dienstprinzipale für die Azure Databricks-Authentifizierung finden Sie unter Einrichten und Verwenden der Authentifizierung mit von Azure verwalteten Identitäten für die Automatisierung von Azure Databricks.

Um die Microsoft Entra ID-Dienstprinzipalauthentifizierung bei Azure Databricks zu konfigurieren, müssen Sie die folgenden zugeordneten Umgebungsvariablen, .databrickscfg-Felder, Terraform-Felder oder Config-Felder festlegen:

  • Der Azure Databricks-Host.

    • Geben Sie für Kontovorgänge https://accounts.azuredatabricks.net an.

    • Geben Sie für Arbeitsbereichsvorgänge die arbeitsbereichsspezifische URL an, z. B. https://adb-1234567890123456.7.azuredatabricks.net.

      Wenn der Microsoft Entra ID-Dienstprinzipal dem Arbeitsbereich noch nicht hinzugefügt wurde, geben Sie stattdessen die Azure-Ressourcen-ID an. In diesem Fall muss der Microsoft Entra ID-Dienstprinzipal mindestens über die Berechtigung Mitwirkender oder Besitzer für die Azure-Ressource verfügen.

  • Für Kontovorgänge die Azure Databricks-Konto-ID.

  • Die Azure-Ressourcen-ID.

  • Die Mandanten-ID des Microsoft Entra ID-Dienstprinzipals.

  • Die Client-ID des Microsoft Entra ID-Dienstprinzipals.

  • Der geheime Clientschlüssel des Microsoft Entra ID-Dienstprinzipals.

Um die Microsoft Entra ID-Dienstprinzipalauthentifizierung bei Azure Databricks durchzuführen, integrieren Sie Folgendes in Ihren Code, basierend auf dem beteiligten Tool oder SDK:

Environment

Informationen zum Verwenden von Umgebungsvariablen für einen bestimmten Azure Databricks-Authentifizierungstyp mit einem Tool oder SDK finden Sie unter Unterstützte Authentifizierungstypen nach Azure Databricks-Tool oder -SDK oder in der Dokumentation des jeweiligen Tools oder SDK. Siehe auch Umgebungsvariablen und Felder für die einheitliche Clientauthentifizierung und die Standardreihenfolge der Auswertung für einheitliche Clientauthentifizierungsmethoden und Anmeldeinformationen.

Legen Sie für Vorgänge auf Kontoebene die folgenden Umgebungsvariablen fest:

  • DATABRICKS_HOST, legen Sie diesen Parameter auf den Wert der Konsolen-URL Ihres Azure Databricks-Kontos fest, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Legen Sie für Vorgänge auf Arbeitsbereichsebene die folgenden Umgebungsvariablen fest:

Geben Sie für Vorgänge auf der ArbeitsbereichsebeneDATABRICKS_AZURE_RESOURCE_ID zusammen mit der Ressourcen-ID des Azure Databricks-Arbeitsbereichs anstelle von HOST zusammen mit der Arbeitsbereichs-URL an, falls der Microsoft Entra ID-Dienstprinzipal noch nicht dem Arbeitsbereich hinzugefügt wurde. In diesem Fall muss der Microsoft Entra ID-Dienstprinzipal mindestens über die Berechtigungen „Mitwirkender“ oder „Besitzer“ für die Azure-Ressource im Azure Databricks-Arbeitsbereich verfügen.

Profil

Erstellen oder identifizieren Sie ein Azure Databricks-Konfigurationsprofil mit den folgenden Feldern in Ihrer .databrickscfg-Datei. Wenn Sie das Profil erstellen, ersetzen Sie die Platzhalter durch die entsprechenden Werte. Informationen zur Verwendung des Profils mit einem Tool oder SDK finden Sie unter Unterstützte Authentifizierungstypen nach Azure Databricks-Tool oder -SDK oder in der Dokumentation des jeweiligen Tools oder SDK. Siehe auch Umgebungsvariablen und Felder für die einheitliche Clientauthentifizierung und die Standardreihenfolge der Auswertung für einheitliche Clientauthentifizierungsmethoden und Anmeldeinformationen.

Legen Sie für Vorgänge auf Kontoebene die folgenden Werte in Ihrer .databrickscfg-Datei fest. In diesem Fall lautet die Konsolen-URL Ihres Azure Databricks-Kontos https://accounts.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host                = <account-console-url>
account_id          = <account-id>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

Legen Sie für Vorgänge auf Arbeitsbereichsebene die folgenden Werte in Ihrer .databrickscfg-Datei fest. In diesem Fall ist der Host die arbeitsbereichsspezifische Azure Databricks-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host                = <workspace-url>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

Geben Sie für Vorgänge auf der Arbeitsbereichsebene azure_workspace_resource_id zusammen mit der Ressourcen-ID des Azure Databricks-Arbeitsbereichs anstelle von host zusammen mit der Arbeitsbereichs-URL an, falls der Microsoft Entra ID-Dienstprinzipal noch nicht dem Arbeitsbereich hinzugefügt wurde. In diesem Fall muss der Microsoft Entra ID-Dienstprinzipal mindestens über die Berechtigungen „Mitwirkender“ oder „Besitzer“ für die Azure-Ressource im Azure Databricks-Arbeitsbereich verfügen.

BEFEHLSZEILENSCHNITTSTELLE (CLI)

Führen Sie für Databricks CLI eine der folgenden Aktionen aus:

  • Legen Sie die Umgebungsvariablen wie im Abschnitt „Umgebung“ dieses Artikels angegeben fest.
  • Legen Sie die Werte in Ihrer .databrickscfg-Datei wie im Abschnitt „Profil“ dieses Artikels angegeben fest.

Umgebungsvariablen haben immer Vorrang vor den Werten in Ihrer .databrickscfg-Datei.

Weitere Informationen finden Sie zudem unter Microsoft Entra ID-Dienstprinzipalauthentifizierung.

Verbinden

Hinweis

Die Authentifizierung mit Microsoft Entra ID-Dienstprinzipalen wird in den folgenden Databricks Connect-Versionen unterstützt:

  • Für Python: Databricks Connect für Databricks Runtime 13.1 und höher.
  • Für Scala: Databricks Connect für Databricks Runtime 13.3 LTS und höher.

Für Databricks Connect können Sie eine der folgenden Aktionen ausführen:

  • Legen Sie die Werte in Ihrer .databrickscfg-Datei für Vorgänge auf Arbeitsbereichsebene in Azure Databricks fest, wie im Abschnitt „Profil“ dieses Artikels angegeben. Legen Sie auch die Umgebungsvariable cluster_id in Ihrem Profil auf Ihre arbeitsbereichsspezifische URL fest, z. B. https://adb-1234567890123456.7.azuredatabricks.net.
  • Legen Sie die Umgebungsvariablen für Vorgänge auf Arbeitsbereichsebene in Azure Databricks fest, wie im Abschnitt „Umgebung“ dieses Artikels angegeben. Legen Sie auch die Umgebungsvariable DATABRICKS_CLUSTER_ID auf Ihre arbeitsbereichsspezifische URL fest, z. B. https://adb-1234567890123456.7.azuredatabricks.net.

Die Werte in Ihrer .databrickscfg-Datei haben immer Vorrang vor Umgebungsvariablen.

Informationen zum Initialisieren des Databricks Connect-Clients mit diesen Umgebungsvariablen oder den Werten in Ihrer .databrickscfg-Datei finden Sie unter den folgenden Ressourcen:

VS-Code

Für die Databricks-Erweiterung für Visual Studio Code gehen Sie folgendermaßen vor:

  1. Legen Sie die Werte in Ihrer .databrickscfg-Datei für Vorgänge auf Arbeitsbereichsebene in Azure Databricks fest, wie im Abschnitt „Profil“ dieses Artikels angegeben.
  2. Wählen Sie in der Databricks-Erweiterung für Visual Studio Code im Bereich Konfiguration die Option Databricks konfigurieren aus.
  3. Geben Sie in der Befehlspalette als Databricks-Host Ihre arbeitsbereichsspezifische URL ein, z. B https://adb-1234567890123456.7.azuredatabricks.net, und drücken Sie dann Enter.
  4. Wählen Sie in der Befehlspalette den Namen Ihres Zielprofils in der Liste für Ihre URL aus.

Weitere Informationen finden Sie unter Einrichten der Authentifizierung für die Databricks-Erweiterung für VS Code.

Terraform

Für Vorgänge auf Kontoebene, für Standardauthentifizierung:

provider "databricks" {
  alias = "accounts"
}

Für die direkte Konfiguration (ersetzen Sie die retrieve-Platzhalter durch Ihre eigene Implementierung, um die Werte aus der Konsole oder einem anderen Konfigurationsspeicher abzurufen, z. B. dem HashiCorp-Tresor. Weitere Informationen finden Sie unter Tresoranbieter). In diesem Fall lautet die Konsolen-URL Ihres Azure Databricks-Kontos https://accounts.azuredatabricks.net:

provider "databricks" {
  alias               = "accounts"
  host                = <retrieve-account-console-url>
  account_id          = <retrieve-account-id>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

Für Vorgänge auf Arbeitsbereichsebene, für Standardauthentifizierung:

provider "databricks" {
  alias = "workspace"
}

Für die direkte Konfiguration (ersetzen Sie die retrieve-Platzhalter durch Ihre eigene Implementierung, um die Werte aus der Konsole oder einem anderen Konfigurationsspeicher abzurufen, z. B. dem HashiCorp-Tresor. Weitere Informationen finden Sie unter Tresoranbieter). In diesem Fall ist der Host die arbeitsbereichsspezifische Azure Databricks-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net:

provider "databricks" {
  alias               = "workspace"
  host                = <retrieve-workspace-url>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

Geben Sie für Vorgänge auf der Arbeitsbereichsebene azure_workspace_resource_id zusammen mit der Ressourcen-ID des Azure Databricks-Arbeitsbereichs anstelle von host zusammen mit der Arbeitsbereichs-URL an, falls der Microsoft Entra ID-Dienstprinzipal noch nicht dem Arbeitsbereich hinzugefügt wurde. In diesem Fall muss der Microsoft Entra ID-Dienstprinzipal mindestens über die Berechtigungen „Mitwirkender“ oder „Besitzer“ für die Azure-Ressource im Azure Databricks-Arbeitsbereich verfügen.

Weitere Informationen zur Authentifizierung mit dem Databricks-Terraform-Anbieter finden Sie unter Authentifizierung.

Python

Für Vorgänge auf Kontoebene, für Standardauthentifizierung:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Für die direkte Konfiguration (ersetzen Sie die retrieve-Platzhalter durch Ihre eigene Implementierung, um die Werte aus der Konsole oder einem anderen Konfigurationsspeicher abzurufen, z. B. Azure-KeyVault). In diesem Fall lautet die Konsolen-URL Ihres Azure Databricks-Kontos https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

a = AccountClient(
  host                = retrieve_account_console_url(),
  account_id          = retrieve_account_id(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

Für Vorgänge auf Arbeitsbereichsebene, für Standardauthentifizierung:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Für die direkte Konfiguration (ersetzen Sie die retrieve-Platzhalter durch Ihre eigene Implementierung, um die Werte aus der Konsole oder einem anderen Konfigurationsspeicher abzurufen, z. B. Azure-KeyVault). In diesem Fall ist der Host die arbeitsbereichsspezifische Azure Databricks-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host                = retrieve_workspace_url(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

Geben Sie für Vorgänge auf der Arbeitsbereichsebene azure_workspace_resource_id zusammen mit der Ressourcen-ID des Azure Databricks-Arbeitsbereichs anstelle von host zusammen mit der Arbeitsbereichs-URL an, falls der Microsoft Entra ID-Dienstprinzipal noch nicht dem Arbeitsbereich hinzugefügt wurde. In diesem Fall muss der Microsoft Entra ID-Dienstprinzipal mindestens über die Berechtigungen „Mitwirkender“ oder „Besitzer“ für die Azure-Ressource im Azure Databricks-Arbeitsbereich verfügen.

Weitere Informationen zur Authentifizierung mit Databricks-Tools und -SDKs, die Python verwenden und die einheitliche Databricks-Clientauthentifizierung implementieren, finden Sie hier:

Java

Für Vorgänge auf Kontoebene, für Standardauthentifizierung:

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

Für die direkte Konfiguration (ersetzen Sie die retrieve-Platzhalter durch Ihre eigene Implementierung, um die Werte aus der Konsole oder einem anderen Konfigurationsspeicher abzurufen, z. B. Azure-KeyVault). In diesem Fall lautet die Konsolen-URL Ihres Azure Databricks-Kontos https://accounts.azuredatabricks.net:

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

Für Vorgänge auf Arbeitsbereichsebene, für Standardauthentifizierung:

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

Für die direkte Konfiguration (ersetzen Sie die retrieve-Platzhalter durch Ihre eigene Implementierung, um die Werte aus der Konsole oder einem anderen Konfigurationsspeicher abzurufen, z. B. Azure-KeyVault). In diesem Fall ist der Host die arbeitsbereichsspezifische Azure Databricks-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net:

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Geben Sie für Vorgänge auf der Arbeitsbereichsebene setAzureWorkspaceResourceId zusammen mit der Ressourcen-ID des Azure Databricks-Arbeitsbereichs anstelle von setHost zusammen mit der Arbeitsbereichs-URL an, falls der Microsoft Entra ID-Dienstprinzipal noch nicht dem Arbeitsbereich hinzugefügt wurde. In diesem Fall muss der Microsoft Entra ID-Dienstprinzipal mindestens über die Berechtigungen „Mitwirkender“ oder „Besitzer“ für die Azure-Ressource im Azure Databricks-Arbeitsbereich verfügen.

Weitere Informationen zur Authentifizierung mit Databricks-Tools und -SDKs, die Java verwenden und die einheitliche Databricks-Clientauthentifizierung implementieren, finden Sie hier:

Go

Für Vorgänge auf Kontoebene, für Standardauthentifizierung:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

Für die direkte Konfiguration (ersetzen Sie die retrieve-Platzhalter durch Ihre eigene Implementierung, um die Werte aus der Konsole oder einem anderen Konfigurationsspeicher abzurufen, z. B. Azure-KeyVault). In diesem Fall lautet die Konsolen-URL Ihres Azure Databricks-Kontos https://accounts.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              retrieveAccountConsoleUrl(),
  AccountId:         retrieveAccountId(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

Für Vorgänge auf Arbeitsbereichsebene, für Standardauthentifizierung:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

Für die direkte Konfiguration (ersetzen Sie die retrieve-Platzhalter durch Ihre eigene Implementierung, um die Werte aus der Konsole oder einem anderen Konfigurationsspeicher abzurufen, z. B. Azure-KeyVault). In diesem Fall ist der Host die arbeitsbereichsspezifische Azure Databricks-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:              retrieveWorkspaceUrl(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

Geben Sie für Vorgänge auf der Arbeitsbereichsebene AzureWorkspaceResourceId zusammen mit der Ressourcen-ID des Azure Databricks-Arbeitsbereichs anstelle von Host zusammen mit der Arbeitsbereichs-URL an, falls der Microsoft Entra ID-Dienstprinzipal noch nicht dem Arbeitsbereich hinzugefügt wurde. In diesem Fall muss der Microsoft Entra ID-Dienstprinzipal mindestens über die Berechtigungen „Mitwirkender“ oder „Besitzer“ für die Azure-Ressource im Azure Databricks-Arbeitsbereich verfügen.

Weitere Informationen zur Authentifizierung mit Databricks-Tools und -SDKs, die Go verwenden und die einheitliche Databricks-Clientauthentifizierung implementieren, finden Sie unter Authentifizieren des Databricks SDK für Go bei Ihrem Azure Databricks-Konto oder -Arbeitsbereich.