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.
- Information om hanterade identiteter finns i Vad är hanterade identiteter för Azure-resurser?.
- Information om hur du skapar en hanterad identitet och ger den behörighet att komma åt Azure Databricks-konton och arbetsytor finns i Konfigurera och använda Azure-autentisering för hanterade identiteter för Azure Databricks-automatisering.
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:
- MS Entra-tjänstens huvudnamnsautentisering
- Azure CLI-autentisering
- Hantera tjänstens huvudnamn
- Etablera ett huvudnamn för tjänsten med hjälp av Terraform
- Hämta Microsoft Entra-ID-token för tjänstens huvudnamn
- Azure CLI-inloggning med tjänstens huvudnamn för Microsoft Entra-ID
- PowerShell-inloggning med tjänstens huvudnamn för Microsoft Entra-ID
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 anger du
- 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_HOST
anger du värdet för din URL för Azure Databricks per arbetsyta, till exempelhttps://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.net
Azure 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.net
Azure 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.net
Azure 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.