Autenticazione dell'entità servizio Microsoft Entra ID

L'autenticazione dell'entità servizio Microsoft Entra ID usa le credenziali di un'entità servizio Microsoft Entra ID per l'autenticazione. Per creare e gestire entità servizio per Azure Databricks, vedere:

Nota

Databricks consiglia di usare l'autenticazione da computer a computer (M2M) OAuth nella maggior parte degli scenari invece dell'autenticazione dell'entità servizio Microsoft Entra ID. Ciò è dovuto al fatto che l'autenticazione OAuth M2M usa token di accesso OAuth di Azure Databricks più affidabili quando si esegue l'autenticazione solo con Azure Databricks.

È consigliabile usare l'autenticazione dell'entità servizio Microsoft Entra ID solo nei casi in cui è necessario eseguire l'autenticazione con Azure Databricks e altre risorse di Azure contemporaneamente, che richiede token ID Microsoft Entra.

Per usare l'autenticazione OAuth M2M anziché l'autenticazione dell'entità servizio Microsoft Entra ID, ignorare questo articolo e vedere Autenticazione da computer a computer (M2M) OAuth.

Le entità servizio Microsoft Entra ID sono diverse dalle identità gestite per le risorse di Azure, supportate anche da Azure Databricks per l'autenticazione. Per informazioni su come usare le identità gestite per le risorse di Azure anziché le entità servizio Dell'ID Entra di Microsoft per l'autenticazione di Azure Databricks, vedere Configurare e usare l'autenticazione delle identità gestite di Azure per l'automazione di Azure Databricks.

Per configurare l'autenticazione dell'entità servizio Microsoft Entra ID con Azure Databricks, è necessario impostare le variabili di ambiente, .databrickscfg i campi, i campi terraform o Config i campi associati seguenti:

  • Host di Azure Databricks.

    • Per le operazioni dell'account, specificare https://accounts.azuredatabricks.net.

    • Per le operazioni dell'area di lavoro, specificare l'URL per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.

      Se l'entità servizio Microsoft Entra ID non è già stata aggiunta all'area di lavoro, specificare invece l'ID risorsa di Azure. In questo caso, l'entità servizio Microsoft Entra ID deve avere almeno le autorizzazioni Collaboratore o Proprietario per la risorsa di Azure.

  • Per le operazioni dell'account, l'ID dell'account Azure Databricks.

  • ID risorsa di Azure.

  • ID tenant dell'entità servizio Microsoft Entra ID.

  • ID client dell'entità servizio Microsoft Entra ID.

  • Segreto client dell'entità servizio Microsoft Entra ID.

Per eseguire l'autenticazione dell'entità servizio Microsoft Entra ID con Azure Databricks, integrare quanto segue all'interno del codice, in base allo strumento o all'SDK partecipante:

Ambiente

Per usare le variabili di ambiente per uno specifico tipo di autenticazione di Azure Databricks con uno strumento o un SDK, vedere Tipi di autenticazione supportati dallo strumento o dall'SDK di Azure Databricks o dalla documentazione dello strumento o dell'SDK. Vedere anche Variabili di ambiente e campi per l'autenticazione unificata client e l'ordine di valutazione predefinito per i metodi e le credenziali di autenticazione unificata client.

Per le operazioni a livello di account, impostare le variabili di ambiente seguenti:

  • DATABRICKS_HOST, impostare sul valore dell'URL della console dell'account Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Per le operazioni a livello di area di lavoro, impostare le variabili di ambiente seguenti:

  • DATABRICKS_HOST, impostare sul valore dell'URL di Azure Databricks per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Per le operazioni a livello di area di lavoro, se l'entità servizio Microsoft Entra ID non è già stata aggiunta all'area di lavoro, specificare DATABRICKS_AZURE_RESOURCE_ID insieme all'ID risorsa di Azure per l'area di lavoro di Azure Databricks, anziché con l'URL dell'area di HOST lavoro. In questo caso, l'entità servizio Microsoft Entra ID deve avere almeno le autorizzazioni Collaboratore o Proprietario per la risorsa di Azure per l'area di lavoro di Azure Databricks.

Profilo

Creare o identificare un profilo di configurazione di Azure Databricks con i campi seguenti nel .databrickscfg file. Se si crea il profilo, sostituire i segnaposto con i valori appropriati. Per usare il profilo con uno strumento o un SDK, vedere Tipi di autenticazione supportati dallo strumento o dall'SDK di Azure Databricks o dalla documentazione dello strumento o dell'SDK . Vedere anche Variabili di ambiente e campi per l'autenticazione unificata client e l'ordine di valutazione predefinito per i metodi e le credenziali di autenticazione unificata client.

Per le operazioni a livello di account, impostare i valori seguenti nel .databrickscfg file. In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

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

Per le operazioni a livello di area di lavoro, impostare i valori seguenti nel .databrickscfg file. In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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>

Per le operazioni a livello di area di lavoro, se l'entità servizio Microsoft Entra ID non è già stata aggiunta all'area di lavoro, specificare azure_workspace_resource_id insieme all'ID risorsa di Azure per l'area di lavoro di Azure Databricks, anziché con l'URL dell'area di host lavoro. In questo caso, l'entità servizio Microsoft Entra ID deve avere almeno le autorizzazioni Collaboratore o Proprietario per la risorsa di Azure per l'area di lavoro di Azure Databricks.

Cli

Per l'interfaccia della riga di comando di Databricks, eseguire una delle operazioni seguenti:

  • Impostare le variabili di ambiente come specificato nella sezione "Ambiente" di questo articolo.
  • Impostare i valori nel .databrickscfg file come specificato nella sezione "Profile" di questo articolo.

Le variabili di ambiente hanno sempre la precedenza sui valori nel .databrickscfg file.

Vedere anche Autenticazione dell'entità servizio Microsoft Entra ID.

Connessione

Nota

L'autenticazione dell'entità servizio Microsoft Entra ID è supportata nelle versioni seguenti di Databricks Connessione:

  • Per Python, Databricks Connessione per Databricks Runtime 13.1 e versioni successive.
  • Per Scala, Databricks Connessione per Databricks Runtime 13.3 LTS e versioni successive.

Per databricks Connessione, è possibile eseguire una delle operazioni seguenti:

  • Impostare i valori nel .databrickscfg file per le operazioni a livello di area di lavoro di Azure Databricks come specificato nella sezione "Profilo" di questo articolo. Impostare anche la cluster_id variabile di ambiente nel profilo sull'URL per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.
  • Impostare le variabili di ambiente per le operazioni a livello di area di lavoro di Azure Databricks come specificato nella sezione "Ambiente" di questo articolo. Impostare anche la variabile di ambiente sull'URL DATABRICKS_CLUSTER_IDper area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.

I valori nel .databrickscfg file hanno sempre la precedenza sulle variabili di ambiente.

Per inizializzare il client di Databricks Connessione con queste variabili di ambiente o valori nel .databrickscfg file, vedere una delle opzioni seguenti:

Vs code

Per l'estensione Databricks per Visual Studio Code, eseguire le operazioni seguenti:

  1. Impostare i valori nel .databrickscfg file per le operazioni a livello di area di lavoro di Azure Databricks come specificato nella sezione "Profilo" di questo articolo.
  2. Nel riquadro Configurazione dell'estensione Databricks per Visual Studio Code fare clic su Configura Databricks.
  3. Nel riquadro comandi, per Host Databricks, immettere l'URL per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net, e quindi premere Enter.
  4. Nel riquadro comandi selezionare il nome del profilo di destinazione nell'elenco per l'URL.

Per altre informazioni, vedere Configurazione dell'autenticazione per l'estensione Databricks per Visual Studio Code.

Terraform

Per le operazioni a livello di account, per l'autenticazione predefinita:

provider "databricks" {
  alias = "accounts"
}

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio HashiCorp Vault. Vedere anche Provider di insiemi di credenziali. In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

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

Per le operazioni a livello di area di lavoro, per l'autenticazione predefinita:

provider "databricks" {
  alias = "workspace"
}

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio HashiCorp Vault. Vedere anche Provider di insiemi di credenziali. In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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>
}

Per le operazioni a livello di area di lavoro, se l'entità servizio Microsoft Entra ID non è già stata aggiunta all'area di lavoro, specificare azure_workspace_resource_id insieme all'ID risorsa di Azure per l'area di lavoro di Azure Databricks, anziché con l'URL dell'area di host lavoro. In questo caso, l'entità servizio Microsoft Entra ID deve avere almeno le autorizzazioni Collaboratore o Proprietario per la risorsa di Azure per l'area di lavoro di Azure Databricks.

Per altre informazioni sull'autenticazione con il provider Databricks Terraform, vedere Autenticazione.

Python

Per le operazioni a livello di account, per l'autenticazione predefinita:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

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

Per le operazioni a livello di area di lavoro, per l'autenticazione predefinita:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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()
)
# ...

Per le operazioni a livello di area di lavoro, se l'entità servizio Microsoft Entra ID non è già stata aggiunta all'area di lavoro, specificare azure_workspace_resource_id insieme all'ID risorsa di Azure per l'area di lavoro di Azure Databricks, anziché con l'URL dell'area di host lavoro. In questo caso, l'entità servizio Microsoft Entra ID deve avere almeno le autorizzazioni Collaboratore o Proprietario per la risorsa di Azure per l'area di lavoro di Azure Databricks.

Per altre informazioni sull'autenticazione con gli strumenti e gli SDK di Databricks che usano Python e che implementano l'autenticazione unificata del client Databricks, vedere:

Java

Per le operazioni a livello di account, per l'autenticazione predefinita:

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

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

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

Per le operazioni a livello di area di lavoro, per l'autenticazione predefinita:

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

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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);
// ...

Per le operazioni a livello di area di lavoro, se l'entità servizio Microsoft Entra ID non è già stata aggiunta all'area di lavoro, specificare setAzureWorkspaceResourceId insieme all'ID risorsa di Azure per l'area di lavoro di Azure Databricks, anziché con l'URL dell'area di setHost lavoro. In questo caso, l'entità servizio Microsoft Entra ID deve avere almeno le autorizzazioni Collaboratore o Proprietario per la risorsa di Azure per l'area di lavoro di Azure Databricks.

Per altre informazioni sull'autenticazione con gli strumenti e gli SDK di Databricks che usano Java e che implementano l'autenticazione unificata del client Databricks, vedere:

Go

Per le operazioni a livello di account, per l'autenticazione predefinita:

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

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              retrieveAccountConsoleUrl(),
  AccountId:         retrieveAccountId(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

Per le operazioni a livello di area di lavoro, per l'autenticazione predefinita:

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

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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(),
}))
// ...

Per le operazioni a livello di area di lavoro, se l'entità servizio Microsoft Entra ID non è già stata aggiunta all'area di lavoro, specificare AzureWorkspaceResourceId insieme all'ID risorsa di Azure per l'area di lavoro di Azure Databricks, anziché con l'URL dell'area di Host lavoro. In questo caso, l'entità servizio Microsoft Entra ID deve avere almeno le autorizzazioni Collaboratore o Proprietario per la risorsa di Azure per l'area di lavoro di Azure Databricks.

Per altre informazioni sull'autenticazione con gli strumenti e gli SDK di Databricks che usano Go e che implementano l'autenticazione unificata del client Databricks, vedere Autenticare Databricks SDK for Go con l'account o l'area di lavoro di Azure Databricks.