Azure-hanterad identitetsautentisering

Azures autentisering av hanterade identiteter använder hanterade identiteter för Azure-resurser (tidigare hanterade tjänstidentiteter (MSI)) för att autentisera med Azure Databricks. Programmatiska anrop till Azure Databricks-konto- och arbetsyteåtgärder använder den här hanterade identiteten när du arbetar med Azure-resurser som stöder hanterade identiteter, till exempel virtuella Azure-datorer.

Kommentar

Hanterade identiteter för Azure-resurser skiljer sig från Microsoft Entra ID-tjänstens huvudnamn, som Azure Databricks också stöder för autentisering. Information om hur du använder Microsoft Entra ID-tjänstens huvudnamn för Azure Databricks-autentisering i stället för hanterade identiteter för Azure-resurser finns i:

Autentisering av hanterade Azure-identiteter stöds endast mellan korrekt konfigurerade resurser som stöder hanterade identiteter, till exempel virtuella Azure-datorer (Azure-datorer) och Azure Databricks-konton och arbetsytor.

För att konfigurera autentisering av hanterade Azure-identiteter med Azure Databricks måste du ange följande associerade miljövariabler, .databrickscfg fält, Terraform-fält eller Config fält på en virtuell Azure-dator som stöds korrekt:

  • 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.
  • För kontoåtgärder, Azure Databricks-konto-ID.
  • Klientorganisations-ID för den hanterade identiteten.
  • Klient-ID för den hanterade identiteten.
  • Azure-resurs-ID:t.
  • Ange sant för hanterade identiteter i Azure.

Om du vill utföra Azure-hanterad identitetsautentisering med Azure Databricks integrerar du följande i koden baserat på det deltagande verktyget eller SDK:n:

Environment

Information om hur du använder miljövariabler för en specifik Azure Databricks-autentiseringstyp med ett verktyg eller SDK finns i Autentisera åtkomst till Azure Databricks-resurser eller verktygets eller SDK:s dokumentation. Se även Miljövariabler och fält för klient enhetlig autentisering och Standardmetoder för klient enhetlig autentisering.

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_CLIENT_ID
  • ARM_USE_MSI, inställt på true.

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_CLIENT_ID
  • ARM_USE_MSI, inställt på true.

Om målidentiteten 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 DATABRICKS_HOST tillsammans med arbetsytans URL. I det här fallet måste målidentiteten ha minst behörigheten 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 Autentisera åtkomst till Azure Databricks-resurser eller verktygets eller SDK:s dokumentation. Se även Miljövariabler och fält för klient enhetlig autentisering och Standardmetoder för klient enhetlig autentisering.

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_client_id = <azure-managed-identity-application-id>
azure_use_msi   = true

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_client_id = <azure-managed-identity-application-id>
azure_use_msi   = true

Om målidentiteten 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 målidentiteten ha minst behörigheten 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 autentisering av hanterade Azure-identiteter.

Anslut

Kommentar

Databricks Connect förlitar sig på Databricks SDK för Python för autentisering. Databricks SDK för Python har ännu inte implementerat Azure-hanterad identitetsautentisering.

VS Code

Kommentar

Databricks-tillägget för Visual Studio Code har ännu inte stöd för Azure-autentisering av hanterade identiteter.

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_client_id = <retrieve-azure-client-id>
  azure_use_msi   = true
}

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_client_id = <retrieve-azure-client-id>
  azure_use_msi   = true
}

Om målidentiteten 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 målidentiteten ha minst behörigheten Deltagare eller Ägare för Azure-resursen för Azure Databricks-arbetsytan.

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

Python

Kommentar

Databricks SDK för Python har ännu inte implementerat Azure-hanterad identitetsautentisering.

Java

Kommentar

Databricks SDK för Java har ännu inte implementerat Azure-hanterad identitetsautentisering.

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(),
  AzureClientId: retrieveAzureClientId(),
  AzureUseMSI:   true,
}))
// ...

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(),
  AzureClientId: retrieveAzureClientId(),
  AzureUseMSI:   true,
}))
// ...

Om målidentiteten inte redan har lagts till på arbetsytan för åtgärder på arbetsytan anger du AzureResourceID 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 målidentiteten ha minst behörigheten 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.