Teilen über


Authentifizieren über Microsoft Entra-Dienstprinzipale

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

Hinweis

Databricks empfiehlt die Verwendung der OAuth-Computer-zu-Computer-Authentifizierung (M2M) in den meisten Szenarien. OAuth M2M verwendet OAuth-Zugriffstoken, die robuster sind, wenn sie nur mit Azure Databricks authentifiziert werden. Verwenden Sie nur die Microsoft Entra-Dienstprinzipalauthentifizierung, wenn Sie sich bei Azure Databricks und anderen Azure-Ressourcen gleichzeitig authentifizieren müssen.

Weitere Informationen finden Sie unter Verwenden von von Azure verwalteten Identitäten mit Azure Databricks und authentifizieren mit Azure DevOps auf Azure Databricks.

Um die Microsoft Entra-Dienstprinzipalauthentifizierung mit 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.
    • Bei Arbeitsbereichsvorgängen empfiehlt Databricks, die URL für den jeweiligen Arbeitsbereich anzugeben, z. B. durch explizite Zuweisung des Microsoft Entra-Dienstprinzipals zum Arbeitsbereich. Alternativ können Sie die Azure-Ressourcen-ID angeben. Für diesen Ansatz sind Mitwirkende- oder Besitzerberechtigungen für die Azure-Ressource oder eine benutzerdefinierte Rolle mit bestimmten Azure Databricks-Berechtigungen erforderlich.
  • Für Kontovorgänge die Azure Databricks-Konto-ID.

  • Die Azure-Ressourcen-ID.

  • Die Mandanten-ID des Microsoft Entra-Dienstprinzipals.

  • Die Client-ID des Microsoft Entra-Dienstprinzipals.

  • Der Client-Geheimnis des Microsoft Entra-Dienstprinzipals.

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

Umgebungsvariablen

Informationen zum Verwenden von Umgebungsvariablen für einen bestimmten Azure Databricks-Authentifizierungstyp mit einem Tool oder SDK finden Sie unter Autorisieren des Zugriffs auf Azure Databricks-Ressourcen oder die Dokumentation des Tools oder SDKs. Siehe auch Umgebungsvariablen und Felder für die einheitliche Authentifizierung und die Priorität der Authentifizierungsmethode.

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:

Databricks empfiehlt die Verwendung von DATABRICKS_HOST und die explizite Zuweisung des Microsoft Entra-Dienstprinzipal zum Arbeitsbereich. Alternativ können Sie die Azure-Ressourcen-ID verwenden DATABRICKS_AZURE_RESOURCE_ID . Für diesen Ansatz sind Mitwirkende- oder Besitzerberechtigungen für die Azure-Ressource oder eine benutzerdefinierte Rolle mit bestimmten Azure Databricks-Berechtigungen erforderlich.

Konfigurationsprofile

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 zum Verwenden des Profils mit einem Tool oder SDK finden Sie unter Autorisieren des Zugriffs auf Azure Databricks-Ressourcen oder die Dokumentation des Tools oder SDKs. Siehe auch Umgebungsvariablen und Felder für die einheitliche Authentifizierung und die Priorität der Authentifizierungsmethode.

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>

Databricks empfiehlt die Verwendung von host und die explizite Zuweisung des Microsoft Entra-Dienstprinzipal zum Arbeitsbereich. Alternativ können Sie die Azure-Ressourcen-ID verwenden azure_workspace_resource_id . Für diesen Ansatz sind Mitwirkende- oder Besitzerberechtigungen für die Azure-Ressource oder eine benutzerdefinierte Rolle mit bestimmten Azure Databricks-Berechtigungen erforderlich.

Databricks-Befehlszeilenschnittstelle

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

  • Legen Sie die Umgebungsvariablen auf der Registerkarte " Umgebung " wie angegeben fest.
  • Legen Sie die Werte in Ihrer .databrickscfg Datei wie auf der Registerkarte "Profil" angegeben fest.

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

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

Databricks Connect

Hinweis

Die Microsoft Entra-Dienstprinzipalauthentifizierung 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:

  • Verwenden eines Konfigurationsprofils: Legen Sie Arbeitsbereichswerte in Ihrer .databrickscfg Datei fest, wie auf der Registerkarte „Profil“ beschrieben. Setzen Sie außerdem die cluster_id URL auf die Arbeitsbereichsinstanz.
  • Verwenden sie Umgebungsvariablen: Legen Sie die gleichen Werte wie auf der Registerkarte " Umgebung " fest. Legen Sie außerdem die DATABRICKS_CLUSTER_ID URL der Arbeitsbereichsinstanz fest.

Werte in .databrickscfg haben Vorrang vor Umgebungsvariablen.

Informationen zum Initialisieren von Databricks Connect mit diesen Einstellungen finden Sie unter Computekonfiguration für Databricks Connect.

Visual Studio Code-Erweiterung

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 im Azure Databricks-Arbeitsbereich fest, wie auf der Registerkarte "Profil" 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 Autorisierung für die Databricks-Erweiterung für Visual Studio Code.

Terraform

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

provider "databricks" {
  alias = "accounts"
}

Ersetzen Sie für die direkte Konfiguration die Platzhalter durch Werte aus der Konsole oder einen anderen Konfigurationsspeicher, z. B. HashiCorp Vault. Siehe auch Tresoranbieter. In diesem Fall lautet die Konsolen-URL Ihres Azure Databricks-Kontos https://accounts.azuredatabricks.net:

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

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

provider "databricks" {
  alias = "workspace"
}

Ersetzen Sie für die direkte Konfiguration die Platzhalter durch Werte aus der Konsole oder einen anderen Konfigurationsspeicher, z. B. HashiCorp Vault. Siehe auch 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                = <your-workspace-url>
  azure_tenant_id     = <your-azure-tenant-id>
  azure_client_id     = <your-azure-client-id>
  azure_client_secret = <your-azure-client-secret>
}

Databricks empfiehlt die Verwendung von host und die explizite Zuweisung des Microsoft Entra-Dienstprinzipal zum Arbeitsbereich. Alternativ können Sie die Azure-Ressourcen-ID verwenden azure_workspace_resource_id . Für diesen Ansatz sind Mitwirkende- oder Besitzerberechtigungen für die Azure-Ressource oder eine benutzerdefinierte Rolle mit bestimmten Azure Databricks-Berechtigungen erforderlich.

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

Databricks SDK für Python

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

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Ersetzen Sie für die direkte Konfiguration die Funktionsaufrufe durch Code, der Werte aus der Konsole oder einem anderen Konfigurationsspeicher abruft, 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                = get_account_console_url(),
  account_id          = get_account_id(),
  azure_tenant_id     = get_azure_tenant_id(),
  azure_client_id     = get_azure_client_id(),
  azure_client_secret = get_azure_client_secret()
)
# ...

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

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Ersetzen Sie für die direkte Konfiguration die Funktionsaufrufe durch Code, der Werte aus der Konsole oder einem anderen Konfigurationsspeicher abruft, 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                = get_workspace_url(),
  azure_tenant_id     = get_azure_tenant_id(),
  azure_client_id     = get_azure_client_id(),
  azure_client_secret = get_azure_client_secret()
)
# ...

Databricks empfiehlt die Verwendung von host und die explizite Zuweisung des Microsoft Entra-Dienstprinzipal zum Arbeitsbereich. Alternativ können Sie die Azure-Ressourcen-ID verwenden azure_workspace_resource_id . Für diesen Ansatz sind Mitwirkende- oder Besitzerberechtigungen für die Azure-Ressource oder eine benutzerdefinierte Rolle mit bestimmten Azure Databricks-Berechtigungen erforderlich.

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

Databricks SDK für Java

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

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

Ersetzen Sie für die direkte Konfiguration die Funktionsaufrufe durch Code, der Werte aus der Konsole oder einem anderen Konfigurationsspeicher abruft, 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(getAccountConsoleUrl())
  .setAccountId(getAccountId())
  .setAzureTenantId(getAzureTenantId())
  .setAzureClientId(getAzureClientId())
  .setAzureClientSecret(getAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

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

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

Ersetzen Sie für die direkte Konfiguration die Funktionsaufrufe durch Code, der Werte aus der Konsole oder einem anderen Konfigurationsspeicher abruft, 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(getWorkspaceUrl())
  .setAzureTenantId(getAzureTenantId())
  .setAzureClientId(getAzureClientId())
  .setAzureClientSecret(getAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Databricks empfiehlt die Verwendung von setHost und die explizite Zuweisung des Microsoft Entra-Dienstprinzipal zum Arbeitsbereich. Alternativ können Sie die Azure-Ressourcen-ID verwenden setAzureWorkspaceResourceId . Für diesen Ansatz sind Mitwirkende- oder Besitzerberechtigungen für die Azure-Ressource oder eine benutzerdefinierte Rolle mit bestimmten Azure Databricks-Berechtigungen erforderlich.

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

Databricks SDK für Go

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

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

Ersetzen Sie für die direkte Konfiguration die Funktionsaufrufe durch Code, der Werte aus der Konsole oder einem anderen Konfigurationsspeicher abruft, 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:              getAccountConsoleUrl(),
  AccountId:         getAccountId(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

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

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

Ersetzen Sie für die direkte Konfiguration die Funktionsaufrufe durch Code, der Werte aus der Konsole oder einem anderen Konfigurationsspeicher abruft, 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:              getWorkspaceUrl(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

Databricks empfiehlt die Verwendung von Host und die explizite Zuweisung des Microsoft Entra-Dienstprinzipal zum Arbeitsbereich. Alternativ können Sie die Azure-Ressourcen-ID verwenden AzureWorkspaceResourceId . Für diesen Ansatz sind Mitwirkende- oder Besitzerberechtigungen für die Azure-Ressource oder eine benutzerdefinierte Rolle mit bestimmten Azure Databricks-Berechtigungen erforderlich.

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.

Weitere Ressourcen