Verifiëren met Microsoft Entra-service-principals

Authenticatie van Microsoft Entra-service-principal gebruikt de inloggegevens van een Microsoft Entra-service-principal voor authenticatie. Als u service-principals voor Azure Databricks wilt maken en beheren, raadpleegt u:

Notitie

Databricks raadt in de meeste scenario's aan om verificatie van OAuth-machine-to-machine (M2M) te gebruiken. OAuth M2M maakt gebruik van OAuth-toegangstokens die krachtiger zijn bij het verifiëren met Azure Databricks. Gebruik alleen verificatie van de Microsoft Entra-service-principal wanneer u zich tegelijkertijd moet verifiëren met Azure Databricks en andere Azure-resources.

Zie Beheerde Identiteiten van Azure gebruiken met Azure Databricks en verifiëren met Azure DevOps in Azure Databricks voor meer informatie.

Als u microsoft Entra-service-principalverificatie wilt configureren met Azure Databricks, moet u de volgende gekoppelde omgevingsvariabelen, .databrickscfg velden, Terraform-velden of Config -velden instellen:

  • De host van Azure Databricks.

    • Geef voor accountbewerkingen op https://accounts.azuredatabricks.net.
    • Voor werkruimtebewerkingen raadt Databricks aan om de URL per werkruimte op te geven, bijvoorbeeld en expliciet de Microsoft https://adb-1234567890123456.7.azuredatabricks.net toe te wijzen aan de werkruimte. U kunt ook de Azure-resource-id opgeven. Voor deze aanpak zijn inzender- of eigenaarsmachtigingen voor de Azure-resource of een aangepaste rol met specifieke Azure Databricks-machtigingen vereist.
  • Voor accountbewerkingen wordt de account-id van Azure Databricks gebruikt.

  • De Azure-resource-ID.

  • De tenant-ID van de Microsoft Entra-service-principal.

  • De client-id van de Microsoft Entra-service-principal.

  • Het clientgeheim van de Microsoft Entra-service-principal.

Als u microsoft Entra-service-principalverificatie wilt uitvoeren met Azure Databricks, integreert u het volgende in uw code op basis van het deelnemende hulpprogramma of de SDK:

Omgevingsvariabelen

Als u omgevingsvariabelen wilt gebruiken voor een specifiek verificatietype van Azure Databricks met een hulpprogramma of SDK, raadpleegt u Toegang verlenen tot Azure Databricks-resources of de documentatie van het hulpprogramma of de SDK. Zie ook Omgevingsvariabelen en -velden voor geïntegreerde verificatie en de prioriteit van de verificatiemethode.

Stel voor bewerkingen op accountniveaude volgende omgevingsvariabelen in:

  • DATABRICKS_HOST, ingesteld op de waarde van uw Azure Databricks-accountconsole-URL, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Stel voor bewerkingen op werkruimteniveaude volgende omgevingsvariabelen in:

  • Stel DATABRICKS_HOST in op de waarde van de Azure Databricks URL per werkruimte, bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.net.
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Databricks raadt aan om DATABRICKS_HOST te gebruiken en de Microsoft Entra-service-principal expliciet toe te wijzen aan de werkruimte. U kunt ook de Azure-resource-id gebruiken DATABRICKS_AZURE_RESOURCE_ID . Voor deze aanpak zijn inzender- of eigenaarsmachtigingen voor de Azure-resource of een aangepaste rol met specifieke Azure Databricks-machtigingen vereist.

Configuratieprofielen

Maak of identificeer een Azure Databricks-configuratieprofiel met de volgende velden in uw .databrickscfg bestand. Als u het profiel maakt, vervangt u de tijdelijke aanduidingen door de juiste waarden. Als u het profiel wilt gebruiken met een hulpprogramma of SDK, raadpleegt u Toegang verlenen tot Azure Databricks-resources of de documentatie van het hulpprogramma of de SDK. Zie ook Omgevingsvariabelen en -velden voor geïntegreerde verificatie en de prioriteit van de verificatiemethode.

Voor bewerkingen op accountniveau, stelt u de volgende waarden in uw .databrickscfg-bestand in. In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

[<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>

Voor bewerkingen op werkruimteniveau, stelt u de volgende waarden in uw .databrickscfg-bestand in. In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://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 raadt aan om host te gebruiken en de Microsoft Entra-service-principal expliciet toe te wijzen aan de werkruimte. U kunt ook de Azure-resource-id gebruiken azure_workspace_resource_id . Voor deze aanpak zijn inzender- of eigenaarsmachtigingen voor de Azure-resource of een aangepaste rol met specifieke Azure Databricks-machtigingen vereist.

Databricks-CLI

Ga op een van de volgende manieren te werk voor de Databricks CLI:

  • Stel de omgevingsvariabelen in zoals opgegeven op het tabblad Omgeving .
  • Stel de waarden in het .databrickscfg bestand in zoals opgegeven op het tabblad Profiel .

Omgevingsvariabelen hebben altijd voorrang op waarden in uw .databrickscfg-bestand.

Zie ook authenticatie van de service-principal van Microsoft Entra ID.

Databricks Connect

Notitie

Verificatie van de Microsoft Entra-service-principal wordt ondersteund in de volgende Databricks Connect-versies:

  • Voor Python is Databricks Connect beschikbaar voor Databricks Runtime 13.1 en hoger.
  • Voor Scala, Databricks Connect voor Databricks Runtime 13.3 LTS en hoger.

Voor Databricks Connect kunt u het volgende doen:

  • Een configuratieprofiel gebruiken: Stel waarden op werkruimteniveau in uw .databrickscfg bestand in zoals beschreven op het tabblad Profiel . Stel ook de URL van het cluster_id werkruimte-exemplaar in.
  • Omgevingsvariabelen gebruiken: Stel dezelfde waarden in als op het tabblad Omgeving . Stel ook de URL van het DATABRICKS_CLUSTER_ID werkruimte-exemplaar in.

Waarden in .databrickscfg hebben voorrang op omgevingsvariabelen.

Als u Databricks Connect met deze instellingen wilt initialiseren, raadpleegt u de compute-configuratie voor Databricks Connect.

Visual Studio Code-extensie

Voor de Databricks IDE-extensie doe je het volgende:

  1. Stel de waarden in uw .databrickscfg bestand in voor bewerkingen op werkruimteniveau van Azure Databricks, zoals opgegeven op het tabblad Profiel .
  2. Klik in het configuratiepaneel van de Databricks IDE-extensie op Configureren Databricks.
  3. Voer in het opdrachtenpalet voor Databricks Host uw URL per werkruimte in, bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.neten druk Enterop .
  4. Selecteer in het opdrachtpalet de naam van uw doelprofiel in de lijst voor uw URL.

Voor meer details, zie Autorisatie instellen voor de Databricks IDE-extensie.

Terraform

Voor bewerkingen op accountniveau, voor standaardauthenticatie:

provider "databricks" {
  alias = "accounts"
}

Vervang voor directe configuratie de tijdelijke aanduidingen door waarden uit de console of een ander configuratiearchief, zoals HashiCorp Vault. Zie ook Vault Provider. In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

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>
}

Voor activiteiten op werkruimteniveau, voor standaardverificatie:

provider "databricks" {
  alias = "workspace"
}

Vervang voor directe configuratie de tijdelijke aanduidingen door waarden uit de console of een ander configuratiearchief, zoals HashiCorp Vault. Zie ook Vault-provider. In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://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 raadt aan om host te gebruiken en de Microsoft Entra-service-principal expliciet toe te wijzen aan de werkruimte. U kunt ook de Azure-resource-id gebruiken azure_workspace_resource_id . Voor deze aanpak zijn inzender- of eigenaarsmachtigingen voor de Azure-resource of een aangepaste rol met specifieke Azure Databricks-machtigingen vereist.

Zie Verificatie voor meer informatie over verificatie met de Databricks Terraform-provider.

Databricks SDK voor Python

Voor bewerkingen op accountniveau, voor standaardauthenticatie:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Vervang voor directe configuratie de functie-aanroepen door code die waarden ophaalt uit de console of een ander configuratiearchief, zoals Azure KeyVault. In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

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()
)
# ...

Voor activiteiten op werkruimteniveau, voor standaardverificatie:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Vervang voor directe configuratie de functie-aanroepen door code die waarden ophaalt uit de console of een ander configuratiearchief, zoals Azure KeyVault. In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://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 raadt aan om host te gebruiken en de Microsoft Entra-service-principal expliciet toe te wijzen aan de werkruimte. U kunt ook de Azure-resource-id gebruiken azure_workspace_resource_id . Voor deze aanpak zijn inzender- of eigenaarsmachtigingen voor de Azure-resource of een aangepaste rol met specifieke Azure Databricks-machtigingen vereist.

Zie voor meer informatie over verificatie met Databricks-hulpprogramma's en SDK's die gebruikmaken van Python en die geïntegreerde Databricks-verificatie implementeren:

Databricks SDK voor Java

Voor bewerkingen op accountniveau, voor standaardauthenticatie:

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

Vervang voor directe configuratie de functie-aanroepen door code die waarden ophaalt uit de console of een ander configuratiearchief, zoals Azure KeyVault. In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

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);
// ...

Voor activiteiten op werkruimteniveau, voor standaardverificatie:

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

Vervang voor directe configuratie de functie-aanroepen door code die waarden ophaalt uit de console of een ander configuratiearchief, zoals Azure KeyVault. In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://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 raadt aan om setHost te gebruiken en de Microsoft Entra-service-principal expliciet toe te wijzen aan de werkruimte. U kunt ook de Azure-resource-id gebruiken setAzureWorkspaceResourceId . Voor deze aanpak zijn inzender- of eigenaarsmachtigingen voor de Azure-resource of een aangepaste rol met specifieke Azure Databricks-machtigingen vereist.

Zie voor meer informatie over verificatie met Databricks-hulpprogramma's en SDK's die gebruikmaken van Java en die geïntegreerde Databricks-verificatie implementeren:

Databricks SDK voor Go

Voor bewerkingen op accountniveau, voor standaardauthenticatie:

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

Vervang voor directe configuratie de functie-aanroepen door code die waarden ophaalt uit de console of een ander configuratiearchief, zoals Azure KeyVault. In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              getAccountConsoleUrl(),
  AccountId:         getAccountId(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

Voor activiteiten op werkruimteniveau, voor standaardverificatie:

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

Vervang voor directe configuratie de functie-aanroepen door code die waarden ophaalt uit de console of een ander configuratiearchief, zoals Azure KeyVault. In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://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 raadt aan om Host te gebruiken en de Microsoft Entra-service-principal expliciet toe te wijzen aan de werkruimte. U kunt ook de Azure-resource-id gebruiken AzureWorkspaceResourceId . Voor deze aanpak zijn inzender- of eigenaarsmachtigingen voor de Azure-resource of een aangepaste rol met specifieke Azure Databricks-machtigingen vereist.

Zie De Databricks-SDK voor Go verifiëren met uw Azure Databricks-account of -werkruimte voor meer informatie over verificatie met Databricks-hulpprogramma's en SDK's die gebruikmaken van Go en die geïntegreerde Verificatie van de Databricks-client implementeren.

Aanvullende bronnen