Delen via


Verificatie van MS Entra-service-principal

MS Entra-service-principal verificatie de referenties van een MS Entra-service-principal gebruikt om te verifiëren. Als u service-principals voor Azure Databricks wilt maken en beheren, raadpleegt u:

Notitie

Databricks raadt u aan om in de meeste scenario's OAuth-M2M-verificatie (machine-to-machine) te gebruiken in plaats van MS Entra-service-principalverificatie. Dit komt doordat OAuth M2M-verificatie gebruik maakt van Azure Databricks OAuth-toegangstokens die robuuster zijn bij verificatie met Azure Databricks.

U moet alleen verificatie van MS Entra-service-principal gebruiken in gevallen waarin u zich tegelijkertijd moet verifiëren met Azure Databricks en andere Azure-resources.

Als u OAuth M2M-verificatie wilt gebruiken in plaats van MS Entra-service-principalverificatie, slaat u dit artikel over en raadpleegt u Toegang zonder toezicht tot Azure Databricks-resources autoriseren met een service-principal met behulp van OAuth.

MS Entra-service-principals verschillen van beheerde identiteiten voor Azure-resources, die azure Databricks ook ondersteunt voor verificatie. Lees hoe je beheerde identiteiten voor Azure-resources instelt en gebruikt in plaats van MS Entra-service-principals voor Azure Databricks-authenticatie. Zie voor het instellen en gebruiken van Azure beheerde identiteiten voor Azure Databricks-automatisering.

Zie Verifiëren met Azure DevOps in Databricks op Databricks voor meer informatie over Microsoft Entra-verificatie met Azure DevOps in Databricks.

Als u de verificatie van service-principals voor MS Entra wilt configureren met Azure Databricks, dient u de volgende gekoppelde omgevingsvariabelen, .databrickscfg-velden, Terraform-velden of Config-velden in te stellen:

  • De Azure Databricks-host.

    • Geef voor accountbewerkingen op https://accounts.azuredatabricks.net.

    • Geef voor werkruimtebewerkingen bijvoorbeeld de https://adb-1234567890123456.7.azuredatabricks.net per werkruimte op.

      Als de MS Entra-service-principal nog niet is toegevoegd aan de werkruimte, geeft u in plaats daarvan de Azure-resource-id op. In dit geval moet de MS Entra-service-principal ten minste machtigingen voor inzender of eigenaar hebben voor de Azure-resource.

  • Voor accountbewerkingen wordt de account-id van Azure Databricks gebruikt.

  • De Azure-resource-id.

  • De tenant-id van de MS Entra-service-principal.

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

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

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

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

Stel voor bewerkingen op accountniveaude volgende omgevingsvariabelen in:

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

    • DATABRICKS_ACCOUNT_ID
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

    Stel voor bewerkingen op werkruimteniveaude volgende omgevingsvariabelen in:

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

    Als voor bewerkingen op werkruimteniveau de MS Entra-service-principal nog niet is toegevoegd aan de werkruimte, geeft u DATABRICKS_AZURE_RESOURCE_ID deze samen met de Azure-resource-id voor de Azure Databricks-werkruimte op in plaats van HOST de werkruimte-URL. In dit geval moet de MS Entra-service-principal ten minste machtigingen voor inzender of eigenaar hebben voor de Azure-resource voor de Azure Databricks-werkruimte.

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 tot Azure Databricks-resources autoriseren of de documentatie van het hulpprogramma of de SDK. Zie ook Omgevingsvariabelen en -velden voor geïntegreerde clientverificatie en de standaardmethoden voor geïntegreerde clientverificatie.

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>

Als voor bewerkingen op werkruimteniveau de MS Entra-service-principal nog niet is toegevoegd aan de werkruimte, geeft u azure_workspace_resource_id deze samen met de Azure-resource-id voor de Azure Databricks-werkruimte op in plaats van host de werkruimte-URL. In dit geval moet de MS Entra-service-principal ten minste machtigingen voor inzender of eigenaar hebben voor de Azure-resource voor de Azure Databricks-werkruimte.

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

  • Stel de omgevingsvariabelen in zoals opgegeven in de sectie 'Omgeving' van dit artikel.
  • Stel de waarden in het .databrickscfg-bestand in zoals opgegeven in de sectie Profiel van dit artikel.

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

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

Notitie

Verificatie van MS Entra-service-principals wordt ondersteund in de volgende Databricks Connect-versies:

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

Voor Databricks Connect kunt u een van de volgende handelingen uitvoeren:

  • Stel de waarden in uw .databrickscfg-bestand in voor bewerkingen op werkruimteniveau van Azure Databricks zoals opgegeven in de sectie Profiel van dit artikel. Stel ook de omgevingsvariabele cluster_id in uw profiel in op uw URL per werkruimte, bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.net.
  • Stel de omgevingsvariabelen in voor Bewerkingen op werkruimteniveau van Azure Databricks zoals opgegeven in de sectie 'Omgeving' van dit artikel. Stel ook de omgevingsvariabele DATABRICKS_CLUSTER_ID in op uw URL per werkruimte, bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.net.

Waarden in uw .databrickscfg-bestand hebben altijd voorrang op omgevingsvariabelen.

Zie .databrickscfgom de Databricks Connect-client te initialiseren met deze omgevingsvariabelen of -waarden in uw -bestand.

Ga als volgt te werk voor de Databricks-extensie voor Visual Studio Code:

  1. Stel de waarden in uw .databrickscfg-bestand in voor bewerkingen op werkruimteniveau van Azure Databricks zoals opgegeven in de sectie Profiel van dit artikel.
  2. Klik in het deelvenster Configuratie van de Databricks-extensie voor Visual Studio Code op Databricks configureren.
  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 opdrachtpaletde naam van uw doelprofiel in de lijst voor uw URL.

Zie Autorisatie instellen voor de Databricks-extensie voor Visual Studio Codevoor meer informatie.

Voor bewerkingen op accountniveau voor standaardverificatie:

provider "databricks" {
  alias = "accounts"
}

Voor directe configuratie (vervang de retrieve tijdelijke aanduidingen door uw eigen implementatie om de waarden op te halen 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                = <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>
}

Voor bewerkingen op werkruimteniveau voor standaardverificatie:

provider "databricks" {
  alias = "workspace"
}

Voor directe configuratie (vervang de retrieve tijdelijke aanduidingen door uw eigen implementatie om de waarden op te halen 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                = <retrieve-workspace-url>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

Als voor bewerkingen op werkruimteniveau de MS Entra-service-principal nog niet is toegevoegd aan de werkruimte, geeft u azure_workspace_resource_id deze samen met de Azure-resource-id voor de Azure Databricks-werkruimte op in plaats van host de werkruimte-URL. In dit geval moet de MS Entra-service-principal ten minste machtigingen voor inzender of eigenaar hebben voor de Azure-resource voor de Azure Databricks-werkruimte.

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

Voor bewerkingen op accountniveau voor standaardverificatie:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Voor rechtstreekse configuratie (vervang de tijdelijke aanduidingen van retrieve door uw eigen uitvoering om de waarden op te halen uit de console of een ander configuratieopslagmedium, 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                = 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()
)
# ...

Voor bewerkingen op werkruimteniveau voor standaardverificatie:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Voor rechtstreekse configuratie (vervang de tijdelijke aanduidingen van retrieve door uw eigen uitvoering om de waarden op te halen uit de console of een ander configuratieopslagmedium, 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                = retrieve_workspace_url(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

Als voor bewerkingen op werkruimteniveau de MS Entra-service-principal nog niet is toegevoegd aan de werkruimte, geeft u azure_workspace_resource_id deze samen met de Azure-resource-id voor de Azure Databricks-werkruimte op in plaats van host de werkruimte-URL. In dit geval moet de MS Entra-service-principal ten minste machtigingen voor inzender of eigenaar hebben voor de Azure-resource voor de Azure Databricks-werkruimte.

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

Voor bewerkingen op accountniveau voor standaardverificatie:

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

Voor rechtstreekse configuratie (vervang de tijdelijke aanduidingen van retrieve door uw eigen uitvoering om de waarden op te halen uit de console of een ander configuratieopslagmedium, 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(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

Voor bewerkingen op werkruimteniveau voor standaardverificatie:

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

Voor rechtstreekse configuratie (vervang de tijdelijke aanduidingen van retrieve door uw eigen uitvoering om de waarden op te halen uit de console of een ander configuratieopslagmedium, 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(retrieveWorkspaceUrl())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Als voor bewerkingen op werkruimteniveau de MS Entra-service-principal nog niet is toegevoegd aan de werkruimte, geeft u setAzureWorkspaceResourceId deze samen met de Azure-resource-id voor de Azure Databricks-werkruimte op in plaats van setHost de werkruimte-URL. In dit geval moet de MS Entra-service-principal ten minste machtigingen voor inzender of eigenaar hebben voor de Azure-resource voor de Azure Databricks-werkruimte.

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

Voor bewerkingen op accountniveau voor standaardverificatie:

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

Voor rechtstreekse configuratie (vervang de tijdelijke aanduidingen van retrieve door uw eigen uitvoering om de waarden op te halen uit de console of een ander configuratieopslagmedium, 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:              retrieveAccountConsoleUrl(),
  AccountId:         retrieveAccountId(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

Voor bewerkingen op werkruimteniveau voor standaardverificatie:

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

Voor rechtstreekse configuratie (vervang de tijdelijke aanduidingen van retrieve door uw eigen uitvoering om de waarden op te halen uit de console of een ander configuratieopslagmedium, 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:              retrieveWorkspaceUrl(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

Als voor bewerkingen op werkruimteniveau de MS Entra-service-principal nog niet is toegevoegd aan de werkruimte, geeft u AzureWorkspaceResourceId deze samen met de Azure-resource-id voor de Azure Databricks-werkruimte op in plaats van Host de werkruimte-URL. In dit geval moet de MS Entra-service-principal ten minste machtigingen voor inzender of eigenaar hebben voor de Azure-resource voor de Azure Databricks-werkruimte.

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.