Autentisering med tjänstens huvudnamn i Microsoft Entra ID

Microsoft Entra ID-tjänstens huvudnamnsautentisering använder autentiseringsuppgifterna för ett Microsoft Entra ID-tjänsthuvudnamn för att autentisera. Information om hur du skapar och hanterar tjänstens huvudnamn för Azure Databricks finns i:

Kommentar

Databricks rekommenderar att du använder OAuth-autentisering från dator till dator (M2M) i de flesta scenarier i stället för autentisering med Tjänstens huvudnamn för Microsoft Entra. Det beror på att OAuth M2M-autentisering använder Azure Databricks OAuth-åtkomsttoken som är mer robusta vid autentisering endast med Azure Databricks.

Du bör endast använda tjänstens huvudnamn i Microsoft Entra ID om du behöver autentisera med Azure Databricks och andra Azure-resurser samtidigt, vilket kräver Microsoft Entra-ID-token.

Om du vill använda OAuth M2M-autentisering i stället för Microsoft Entra ID-tjänstens huvudnamnsautentisering hoppar du över den här artikeln och läser OAuth-autentisering från dator till dator (M2M).

Tjänstens huvudnamn för Microsoft Entra-ID skiljer sig från hanterade identiteter för Azure-resurser, som Även Azure Databricks stöder för autentisering. Information om hur du använder hanterade identiteter för Azure-resurser i stället för Microsoft Entra ID-tjänstens huvudnamn för Azure Databricks-autentisering finns i Konfigurera och använda Azure-hanterad identitetsautentisering för Azure Databricks-automatisering.

För att konfigurera autentisering av tjänstens huvudnamn för Microsoft Entra med Azure Databricks måste du ange följande associerade miljövariabler, .databrickscfg fält, Terraform-fält eller Config fält:

  • Azure Databricks-värden.

    • För kontoåtgärder anger du https://accounts.azuredatabricks.net.

    • För arbetsyteåtgärder anger du URL:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

      Om tjänstens huvudnamn för Microsoft Entra-ID inte redan har lagts till på arbetsytan anger du Azure-resurs-ID:t i stället. I det här fallet måste tjänstens huvudnamn för Microsoft Entra-ID ha minst behörighet som deltagare eller ägare för Azure-resursen.

  • För kontoåtgärder, Azure Databricks-konto-ID.

  • Azure-resurs-ID:t.

  • Klientorganisations-ID för Tjänstens huvudnamn för Microsoft Entra.

  • Klient-ID för tjänstens huvudnamn för Microsoft Entra-ID.

  • Klienthemligheten för Tjänstens huvudnamn för Microsoft Entra-ID.

Om du vill utföra autentisering med Tjänstens huvudnamn för Microsoft Entra med Azure Databricks integrerar du följande i koden baserat på det deltagande verktyget eller SDK:t:

Environment

Information om hur du använder miljövariabler för en specifik Azure Databricks-autentiseringstyp med ett verktyg eller SDK finns i autentiseringstyper som stöds av Azure Databricks-verktyget eller SDK eller verktygets eller SDK:s dokumentation. Se även Miljövariabler och fält för klient enhetlig autentisering och Standardordning för utvärdering för klient enhetliga autentiseringsmetoder och autentiseringsuppgifter.

För åtgärder på kontonivå anger du följande miljövariabler:

  • DATABRICKS_HOST, ange värdet för azure Databricks-kontokonsolens URL, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

För åtgärder på arbetsytans nivå anger du följande miljövariabler:

  • DATABRICKS_HOSTanger du värdet för din URL för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Om tjänstens huvudnamn för Microsoft Entra-ID inte redan har lagts till på arbetsytan för åtgärder på arbetsytan anger du DATABRICKS_AZURE_RESOURCE_ID tillsammans med Azure-resurs-ID:t för Azure Databricks-arbetsytan i stället för HOST tillsammans med arbetsytans URL. I det här fallet måste tjänstens huvudnamn för Microsoft Entra-ID ha minst behörighet som deltagare eller ägare för Azure-resursen för Azure Databricks-arbetsytan.

Profil

Skapa eller identifiera en Azure Databricks-konfigurationsprofil med följande fält i .databrickscfg filen. Om du skapar profilen ersätter du platshållarna med lämpliga värden. Information om hur du använder profilen med ett verktyg eller SDK finns i autentiseringstyper som stöds av Azure Databricks-verktyget eller SDK eller verktygets eller SDK:s dokumentation. Se även Miljövariabler och fält för klient enhetlig autentisering och Standardordning för utvärdering för klient enhetliga autentiseringsmetoder och autentiseringsuppgifter.

För åtgärder på kontonivå anger du följande värden i .databrickscfg filen. I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

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

För åtgärder på arbetsytenivå anger du följande värden i .databrickscfg filen. I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net:

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

Om tjänstens huvudnamn för Microsoft Entra-ID inte redan har lagts till på arbetsytan för åtgärder på arbetsytan anger du azure_workspace_resource_id tillsammans med Azure-resurs-ID:t för Azure Databricks-arbetsytan i stället för host tillsammans med arbetsytans URL. I det här fallet måste tjänstens huvudnamn för Microsoft Entra-ID ha minst behörighet som deltagare eller ägare för Azure-resursen för Azure Databricks-arbetsytan.

Cli

Gör något av följande för Databricks CLI:

  • Ange miljövariablerna enligt beskrivningen i avsnittet "Miljö".
  • Ange värdena i .databrickscfg filen enligt beskrivningen i avsnittet Profil i den här artikeln.

Miljövariabler har alltid företräde framför värden i filen .databrickscfg .

Se även Microsoft Entra ID-tjänstens huvudnamnsautentisering.

Anslut

Kommentar

Microsoft Entra ID-tjänstens huvudnamnsautentisering stöds på följande Databricks-Anslut versioner:

  • För Python Anslut Databricks För Databricks Runtime 13.1 och senare.
  • För Scala Anslut Databricks Runtime 13.3 LTS och senare.

För Databricks Anslut kan du göra något av följande:

  • Ange värdena i .databrickscfg filen för åtgärder på Azure Databricks-arbetsytenivå enligt beskrivningen i den här artikelns avsnitt "Profil". Ange cluster_id även miljövariabeln i din profil till url:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.
  • Ange miljövariablerna för åtgärder på Azure Databricks-arbetsytenivå enligt beskrivningen i den här artikelns "Miljö"-avsnitt. Ange DATABRICKS_CLUSTER_ID även miljövariabeln till url:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

Värden i .databrickscfg filen har alltid företräde framför miljövariabler.

Information om hur du initierar Databricks Anslut-klienten med dessa miljövariabler eller värden i filen finns i .databrickscfg något av följande:

Jämfört med kod

Gör följande för Databricks-tillägget för Visual Studio Code:

  1. Ange värdena i .databrickscfg filen för åtgärder på Azure Databricks-arbetsytenivå enligt beskrivningen i den här artikelns avsnitt "Profil".
  2. I fönstret Konfiguration i Databricks-tillägget för Visual Studio Code klickar du på Konfigurera Databricks.
  3. I kommandopaletten för Databricks Host anger du url:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.netoch trycker sedan på Enter.
  4. I kommandopaletten väljer du målprofilens namn i listan för din URL.

Mer information finns i Autentiseringskonfiguration för Databricks-tillägget för VS Code.

Terraform

För åtgärder på kontonivå för standardautentisering:

provider "databricks" {
  alias = "accounts"
}

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel HashiCorp Vault. Se även Valvprovider). I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

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 åtgärder på arbetsytenivå för standardautentisering:

provider "databricks" {
  alias = "workspace"
}

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel HashiCorp Vault. Se även Valvprovider). I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel 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>
}

Om tjänstens huvudnamn för Microsoft Entra-ID inte redan har lagts till på arbetsytan för åtgärder på arbetsytan anger du azure_workspace_resource_id tillsammans med Azure-resurs-ID:t för Azure Databricks-arbetsytan i stället för host tillsammans med arbetsytans URL. I det här fallet måste tjänstens huvudnamn för Microsoft Entra-ID ha minst behörighet som deltagare eller ägare för Azure-resursen för Azure Databricks-arbetsytan.

Mer information om autentisering med Databricks Terraform-providern finns i Autentisering.

Python

För åtgärder på kontonivå för standardautentisering:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

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 åtgärder på arbetsytenivå för standardautentisering:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel 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()
)
# ...

Om tjänstens huvudnamn för Microsoft Entra-ID inte redan har lagts till på arbetsytan för åtgärder på arbetsytan anger du azure_workspace_resource_id tillsammans med Azure-resurs-ID:t för Azure Databricks-arbetsytan i stället för host tillsammans med arbetsytans URL. I det här fallet måste tjänstens huvudnamn för Microsoft Entra-ID ha minst behörighet som deltagare eller ägare för Azure-resursen för Azure Databricks-arbetsytan.

Mer information om autentisering med Databricks-verktyg och SDK:er som använder Python och som implementerar enhetlig autentisering med Databricks-klienten finns i:

Java

För åtgärder på kontonivå för standardautentisering:

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

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

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 åtgärder på arbetsytenivå för standardautentisering:

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

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel 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);
// ...

Om tjänstens huvudnamn för Microsoft Entra-ID inte redan har lagts till på arbetsytan för åtgärder på arbetsytan anger du setAzureWorkspaceResourceId tillsammans med Azure-resurs-ID:t för Azure Databricks-arbetsytan i stället för setHost tillsammans med arbetsytans URL. I det här fallet måste tjänstens huvudnamn för Microsoft Entra-ID ha minst behörighet som deltagare eller ägare för Azure-resursen för Azure Databricks-arbetsytan.

Mer information om autentisering med Databricks-verktyg och SDK:er som använder Java och som implementerar enhetlig autentisering för Databricks-klienten finns i:

Go

För åtgärder på kontonivå för standardautentisering:

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

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

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 åtgärder på arbetsytenivå för standardautentisering:

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

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel 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(),
}))
// ...

Om tjänstens huvudnamn för Microsoft Entra-ID inte redan har lagts till på arbetsytan för åtgärder på arbetsytan anger du AzureWorkspaceResourceId tillsammans med Azure-resurs-ID:t för Azure Databricks-arbetsytan i stället för Host tillsammans med arbetsytans URL. I det här fallet måste tjänstens huvudnamn för Microsoft Entra-ID ha minst behörighet som deltagare eller ägare för Azure-resursen för Azure Databricks-arbetsytan.

Mer information om autentisering med Databricks-verktyg och SDK:er som använder Go och som implementerar enhetlig autentisering för Databricks-klienten finns i Autentisera Databricks SDK för Go med ditt Azure Databricks-konto eller din arbetsyta.