Authentification du principal du service Microsoft Entra ID

L’authentification du principal de service Microsoft Entra ID utilise les informations d’identification d’un principal de service Microsoft Entra ID pour s’authentifier. Pour créer et gérer des principaux de service pour Azure Databricks, consultez les articles suivants :

Remarque

Databricks recommande d’utiliser l’authentification de machine à machine OAuth (M2M) dans la plupart des scénarios au lieu de l’authentification principale du service Microsoft Entra ID. C’est parce que OAuth M2M utilise des jetons d’accès OAuth Azure Databricks plus robustes lors de l’authentification avec uniquement Azure Databricks.

Vous devez utiliser l’authentification du principal du service Microsoft Entra ID uniquement dans les cas où il vous faut vous authentifier avec Azure Databricks et d’autres ressources Azure en même temps, ce qui nécessite des jetons Microsoft Entra ID.

Pour utiliser l’authentification M2M OAuth au lieu de l’authentification du principal du service Microsoft Entra ID, passez cet article et consultez Authentification de machine à machine (M2M) OAuth.

Les principaux du service Microsoft Entra ID sont différents des Identités managées pour les ressources Azure, qu’Azure Databricks prend également en charge pour l’authentification. Pour découvrir comment utiliser les identités managées pour les ressources Azure au lieu des principaux de service Microsoft Entra ID pour l’authentification Azure Databricks, consultez l’article Configurer et utiliser l’authentification des identités managées Azure pour l’automatisation Azure Databricks.

Pour configurer l’authentification du principal de service Microsoft Entra ID avec Azure Databricks, vous devez définir les variables d’environnement, les champs .databrickscfg, les champs Terraform ou les champs Config associés suivants :

  • Un hôte Azure Databricks.

    • Pour les opérations de compte, spécifiez https://accounts.azuredatabricks.net.

    • Pour les opérations d’espace de travail, spécifiez l’URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

      Si le principal de service Microsoft Entra ID n’a pas déjà été ajouté à l’espace de travail, spécifiez plutôt l’ID de ressource Azure. Dans ce cas, le principal de service Microsoft Entra ID cible doit disposer au moins de l’autorisation Contributeur ou Propriétaire sur la ressource Azure.

  • Pour les opérations de compte, l’ID de compte Azure Databricks.

  • ID de ressource Azure.

  • ID de locataire du principal du service Microsoft Entra ID.

  • ID client du principal du service Microsoft Entra ID.

  • Clé secrète client du principal du service Microsoft Entra ID.

Pour effectuer l’authentification du principal de service Microsoft Entra ID avec Azure Databricks, intégrez les éléments suivants dans votre code, en fonction de l’outil ou du kit de développement logiciel (SDK) participant :

Environnement

Pour utiliser des variables d’environnement pour un type d’authentification Azure Databricks spécifique avec un outil ou un kit de développement logiciel (SDK), consultez la Documentation sur les types d’authentification pris en charge par l’outil ou le SDK Azure Databricks, ou la documentation de l’outil ou du SDK. Consultez également Variables et champs d’environnement pour l’authentification unifiée du client et Ordre d’évaluation par défaut pour les méthodes et informations d’identification d’authentification unifiées du client.

Pour les opérations au niveau du compte, définissez les variables d’environnement suivantes :

  • DATABRICKS_HOST, défini sur la valeur de l’URL de la console de votre compte Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Pour les opérations au niveau de l’espace de travail, définissez les variables d’environnement suivantes :

  • DATABRICKS_HOST, défini sur la valeur de votre URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net.
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Pour les opérations au niveau de l’espace de travail, si le principal de service Microsoft Entra ID n’a pas encore été ajoutée à l’espace de travail, spécifiez DATABRICKS_AZURE_RESOURCE_ID avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de HOST avec l’URL de l’espace de travail. Dans ce cas, le principal de service Microsoft Entra ID doit disposer au moins des autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.

Profil

Créez ou identifiez un profil de configuration Azure Databricks avec les champs suivants dans votre fichier .databrickscfg. Si vous créez le profil, remplacez les espaces réservés par les valeurs appropriées. Pour utiliser le profil avec un outil ou un kit de développement logiciel (SDK), consultez les Types d’authentification pris en charge par l’outil ou le kit de développement logiciel (SDK) Azure Databricks ou la documentation de l’outil ou du SDK. Consultez également Variables et champs d’environnement pour l’authentification unifiée du client et Ordre d’évaluation par défaut pour les méthodes et informations d’identification d’authentification unifiées du client.

Pour les opérations au niveau du compte, définissez les valeurs suivantes dans votre fichier .databrickscfg. Dans ce cas, l’URL de la console de compte Azure Databricks est 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>

Pour les opérations au niveau de l’espace de travail, définissez les valeurs suivantes dans votre fichier .databrickscfg. Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple 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>

Pour les opérations au niveau de l’espace de travail, si le principal de service Microsoft Entra ID n’a pas encore été ajoutée à l’espace de travail, spécifiez azure_workspace_resource_id avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de host avec l’URL de l’espace de travail. Dans ce cas, le principal de service Microsoft Entra ID doit disposer au moins des autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.

Cli

Pour l’interface CLI Databricks, effectuez l’une des opérations suivantes :

  • Définissez les variables d’environnement comme spécifié dans la section « Environnement » de cet article.
  • Définissez les valeurs de votre fichier .databrickscfg comme spécifié dans la section « Profil » de cet article.

Les variables d’environnement sont toujours prioritaires sur les valeurs de votre fichier .databrickscfg.

Consultez également Authentification du principal du service Microsoft Entra ID.

Se connecter

Remarque

L’authentification d’un principal de service Microsoft Entra ID est prise en charge sur les versions suivantes de Databricks Connect :

  • Pour Python, Databricks Connect pour Databricks Runtime 13.1 et versions ultérieures.
  • Pour Scala, Databricks Connect pour Databricks Runtime 13.3 LTS et ultérieur.

Pour Databricks Connect, vous pouvez effectuer une des opérations suivantes :

  • Définissez les valeurs de votre fichier .databrickscfg pour les opérations au niveau de l’espace de travail Azure Databricks comme spécifié dans la section « Profil » de cet article. Définissez également la variable d’environnement cluster_id dans votre profil sur votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.
  • Définissez les variables d’environnement pour les opérations au niveau de l’espace de travail Azure Databricks, comme spécifié dans la section « Environnement » de cet article. Définissez également la variable d’environnement DATABRICKS_CLUSTER_ID sur votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Les valeurs de votre fichier .databrickscfg sont toujours prioritaires sur les variables d’environnement.

Pour initialiser le client Databricks Connect avec ces variables d’environnement ou les valeurs de votre fichier .databrickscfg, consultez une des rubriques suivantes :

VS Code

Pour l’extension Databricks pour Visual Studio Code, procédez comme suit :

  1. Définissez les valeurs de votre fichier .databrickscfg pour les opérations au niveau de l’espace de travail Azure Databricks comme spécifié dans la section « Profil » de cet article.
  2. Dans le volet Configuration de l’extension Databricks pour Visual Studio Code, cliquez sur Configurer Databricks.
  3. Dans la palette de commandes, pour Hôte Databricks, entrez votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net, puis appuyez sur Enter.
  4. Dans la palette de commandes, sélectionnez le nom de votre profil cible dans la liste pour votre URL.

Pour plus d’informations, consultez Configuration de l’authentification pour l’extension Databricks pour Visual Studio Code.

Terraform

Pour les opérations au niveau du compte, pour l’authentification par défaut :

provider "databricks" {
  alias = "accounts"
}

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme HashiCorp Vault. Référez-vous également à Vault Provider). Dans ce cas, l’URL de la console de compte Azure Databricks est 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>
}

Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :

provider "databricks" {
  alias = "workspace"
}

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme HashiCorp Vault. Référez-vous également à Vault Provider). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple 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>
}

Pour les opérations au niveau de l’espace de travail, si le principal de service Microsoft Entra ID n’a pas encore été ajoutée à l’espace de travail, spécifiez azure_workspace_resource_id avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de host avec l’URL de l’espace de travail. Dans ce cas, le principal de service Microsoft Entra ID doit disposer au moins des autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.

Pour plus d’informations sur l’authentification avec le fournisseur Databricks Terraform, consultez Authentification.

Python

Pour les opérations au niveau du compte, pour l’authentification par défaut :

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’URL de la console de compte Azure Databricks est 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()
)
# ...

Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple 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()
)
# ...

Pour les opérations au niveau de l’espace de travail, si le principal de service Microsoft Entra ID n’a pas encore été ajoutée à l’espace de travail, spécifiez azure_workspace_resource_id avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de host avec l’URL de l’espace de travail. Dans ce cas, le principal de service Microsoft Entra ID doit disposer au moins des autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.

Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Python et qui implémentent l’Authentification unifiée du client Databricks, consultez :

Java

Pour les opérations au niveau du compte, pour l’authentification par défaut :

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

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’URL de la console de compte Azure Databricks est 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);
// ...

Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :

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

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple 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);
// ...

Pour les opérations au niveau de l’espace de travail, si le principal de service Microsoft Entra ID n’a pas encore été ajoutée à l’espace de travail, spécifiez setAzureWorkspaceResourceId avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de setHost avec l’URL de l’espace de travail. Dans ce cas, le principal de service Microsoft Entra ID doit disposer au moins des autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.

Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Java et qui implémentent l’Authentification unifiée du client Databricks, consultez :

Go

Pour les opérations au niveau du compte, pour l’authentification par défaut :

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

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’URL de la console de compte Azure Databricks est 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(),
}))
// ...

Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :

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

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple 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(),
}))
// ...

Pour les opérations au niveau de l’espace de travail, si le principal de service Microsoft Entra ID n’a pas encore été ajoutée à l’espace de travail, spécifiez AzureWorkspaceResourceId avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de Host avec l’URL de l’espace de travail. Dans ce cas, le principal de service Microsoft Entra ID doit disposer au moins des autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.

Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Go et qui implémentent l’Authentification unifiée du client Databricks, consultez Authentifier le kit de développement logiciel (SDK) Databricks pour Go avec votre compte ou votre espace de travail Azure Databricks.