Authentification pour l’interface CLI Databricks

Remarque

Ces informations s'appliquent aux versions Databricks CLI 0,205 et supérieures, qui sont en version préliminaire publique. Pour trouver votre version de l’interface CLI Databricks, exécutez databricks -v.

Cet article explique comment configurer l’authentification entre l’interface CLI Databricks et vos comptes et espaces de travail Azure Databricks. Consultez Qu’est-ce que l’interface CLI Databricks ?.

Cet article suppose que vous avez déjà installé l’interface CLI Databricks. Consultez Installer ou mettre à jour l’interface CLI Databricks.

Avant de pouvoir exécuter des commandes d’interface CLI Databricks, vous devez configurer l’authentification entre l’interface CLI Databricks et vos comptes Azure Databricks, vos espaces de travail ou une combinaison de ces commandes, en fonction des types de commandes CLI que vous souhaitez exécuter.

Vous devez authentifier l’interface CLI Databricks auprès des ressources appropriées au moment de l’exécution afin d’exécuter des commandes d’automatisation Azure Databricks au sein d’un compte ou d’un espace de travail Azure Databricks. Selon que vous souhaitez appeler des commandes au niveau de l’espace de travail Azure Databricks, du compte Azure Databricks ou les deux, vous devez vous authentifier auprès de l’espace de travail Azure Databricks, du compte ou des deux. Pour obtenir la liste des groupes de commandes CLI au niveau de l’espace de travail et au niveau du compte Azure Databricks, exécutez la commande databricks -h. Pour obtenir la liste des opérations de l’API REST Azure Databricks au niveau de l’espace de travail et au niveau du compte Azure Databricks couvertes par les commandes CLI Databricks, consultez l’article API REST Databricks.

Remarque

L’interface CLI Databricks implémente la norme d’authentification unifiée du client Databricks, une approche architecturale et programmatique consolidée et cohérente pour l’authentification. Cette approche permet de rendre la configuration et l’automatisation de l’authentification avec Azure Databricks plus centralisées et prévisibles. Elle vous permet de configurer une seule fois l’authentification Azure Databricks, puis d’utiliser cette configuration sur plusieurs outils Azure Databricks et SDK sans modifier à nouveau la configuration de l’authentification. Pour plus d’informations sur cette norme, consultez la section Authentification unifiée du client Databricks.

Les sections suivantes fournissent des informations sur la configuration de l’authentification entre l’interface CLI Databricks et Azure Databricks :

Authentification à l’aide d’un jeton d’accès personnel Azure Databricks

L’authentification par jeton d’accès personnel Azure Databricks a recours à un jeton d’accès personnel Azure Databricks pour authentifier l’entité Azure Databricks cible, par exemple un compte d’utilisateur Azure Databricks. Consultez Authentification à l’aide de jetons d’accès personnels Azure Databricks.

Remarque

Vous ne pouvez pas utiliser l’authentification par jeton d’accès personnel Azure Databricks pour l’authentification avec un compte Azure Databricks, car les commandes au niveau du compte Azure Databricks n’utilisent pas de jetons d’accès personnels Azure Databricks pour l’authentification. Pour vous authentifier avec un compte Azure Databricks, envisagez d’utiliser l’un des types d’authentification suivants à la place :

Pour créer un jeton d’accès personnel, effectuez les actions suivantes :

  1. Dans votre espace de travail Azure Databricks, cliquez sur votre nom d’utilisateur Azure Databricks dans la barre supérieure, puis sélectionnez Paramètres dans la liste déroulante.
  2. Cliquez sur Développeur.
  3. À côté de Jetons d’accès, cliquez sur Gérer.
  4. Cliquez sur Générer un nouveau jeton.
  5. (Facultatif) Entrez un commentaire qui vous aide à identifier ce jeton à l’avenir et modifiez sa durée de vie par défaut (90 jours). Pour créer un jeton sans durée de vie (non recommandé), laissez vide la zone Durée de vie (en jours).
  6. Cliquez sur Générer.
  7. Copiez le jeton affiché dans un emplacement sécurisé, puis cliquez sur Terminé.

Remarque

Veillez à enregistrer le jeton copié dans un emplacement sécurisé. Ne partagez pas votre jeton copié avec d'autres. Si vous le perdez, vous ne pouvez pas régénérer exactement le même. Vous devez donc répéter cette procédure pour créer un jeton. Si vous perdez le jeton copié ou si vous pensez que le jeton a été compromis, Databricks vous recommande vivement de supprimer immédiatement ce jeton de votre espace de travail en cliquant sur l’icône de la corbeille (Révoquer) à côté du jeton de la page Jetons d’accès.

Si vous n'êtes pas en mesure de créer ou d'utiliser des jetons dans votre espace de travail, cela peut être dû au fait que votre administrateur d'espace de travail a désactivé les jetons ou ne vous a pas donné l'autorisation de créer ou d'utiliser des jetons. Consultez votre administrateur d'espace de travail ou les personnes suivantes :

Pour configurer et utiliser l’authentification par jeton d’accès personnel Azure Databricks, procédez comme suit :

Remarque

La procédure suivante crée un profil de configuration Azure Databricks nommé DEFAULT. Si vous disposez déjà d’un profil de configuration DEFAULT que vous souhaitez utiliser, ignorez cette procédure. Sinon, cette procédure remplace votre profil de configuration DEFAULT existant. Pour afficher les noms et les hôtes de tous les profils de configuration existants, exécutez la commande databricks auth profiles.

Pour créer un profil de configuration portant un autre nom que DEFAULT, ajoutez --profile <configuration-profile-name> ou -p <configuration-profile-name> à la fin de la commande databricks configure suivante, en remplaçant <configuration-profile-name> par le nom du nouveau profil de configuration.

  1. Utilisez l’interface CLI Databricks pour exécuter la commande suivante :

    databricks configure
    
  2. Pour l’invite Databricks Host , entrez votre URL Azure Databricks par espace de travail, par exemple : https://adb-1234567890123456.7.azuredatabricks.net.

  3. Pour l’invite Jeton d’accès personnel, entrez le jeton d’accès personnel Azure Databricks pour votre espace de travail.

    Une fois que vous avez entré votre jeton d’accès personnel Azure Databricks, un profil de configuration correspondant est ajouté à votre fichier .databrickscfg. Si l’interface CLI Databricks ne trouve pas ce fichier à son emplacement par défaut, elle le crée à votre place, puis ajoute ce profil de configuration au nouveau fichier. L’emplacement par défaut de ce fichier est votre dossier ~ (dossier de base d’utilisateur) sur Unix, Linux ou macOS, ou votre dossier %USERPROFILE% (dossier de base d’utilisateur) sur Windows.

  4. Vous pouvez désormais utiliser l’option --profile ou -p de l’interface CLI Databricks suivie du nom de votre profil de configuration, dans le cadre de l’appel de commande CLI Databricks, par exemple databricks clusters list -p <configuration-profile-name>.

Authentification OAuth machine à machine (M2M)

Au lieu de vous authentifier auprès d’Azure Databricks à l’aide d’une authentification par jeton d’accès personnel Azure Databricks, vous pouvez utiliser l’authentification OAuth. OAuth fournit des jetons avec des délais d’expiration plus rapides que les jetons d’accès personnels Azure Databricks, et offre de meilleures invalidation et étendue de session côté serveur. Étant donné que les jetons d’accès OAuth expirent en moins d’une heure, cela réduit le risque associé à la vérification accidentelle des jetons dans le contrôle de code source. Consultez également Authentification OAuth machine à machine (M2M).

Pour configurer et utiliser l’authentification OAuth M2M, procédez comme suit :

  1. Suivez les instructions de configuration de l’authentification OAuth M2M. Consultez Authentification OAuth M2M (machine à machine)

  2. 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 les commandes au niveau du compte, définissez les valeurs suivantes dans votre fichier .databrickscfg :

    [<some-unique-configuration-profile-name>]
    host          = <account-console-url>
    account_id    = <account-id>
    client_id     = <service-principal-client-id>
    client_secret = <service-principal-oauth-secret>
    

    Pour les commandes au niveau de l’espace de travail, définissez les valeurs suivantes dans votre fichier .databrickscfg :

    [<some-unique-configuration-profile-name>]
    host          = <workspace-url>
    client_id     = <service-principal-client-id>
    client_secret = <service-principal-oauth-secret>
    

    Remarque

    L’emplacement par défaut du .databrickscfg fichier se trouve dans le répertoire de base de l’utilisateur. Il s’agit ~ de Linux et macOS, et %USERPROFILE% pour Windows.

  3. Utilisez l’option --profile ou -p de l’interface CLI Databricks suivie du nom de votre profil de configuration, dans le cadre de l’appel de commande CLI Databricks, par exemple, databricks account groups list -p <configuration-profile-name> ou databricks clusters list -p <configuration-profile-name>.

    Conseil

    Appuyez sur Tab après --profile ou -p pour afficher une liste de profils de configuration disponibles existants à choisir, au lieu d’entrer manuellement le nom du profil de configuration.

Authentification utilisateur à machine (U2M) OAuth

Au lieu de vous authentifier auprès d’Azure Databricks à l’aide de l’authentification par jeton, vous pouvez utiliser l’authentification OAuth. OAuth fournit des jetons avec des délais d’expiration plus rapides que les jetons d’accès personnels Azure Databricks, et offre de meilleures invalidation et étendue de session côté serveur. Étant donné que les jetons d’accès OAuth expirent en moins d’une heure, cela réduit le risque associé à la vérification accidentelle des jetons dans le contrôle de code source. Consultez également la section Authentification utilisateur à machine (U2M) OAuth.

Pour configurer et utiliser l’authentification OAuth U2M, procédez comme suit :

  1. Avant d’appeler des commandes au niveau du compte Azure Databricks, vous devez lancer la gestion des jetons OAuth localement en exécutant la commande suivante. Cette commande doit être exécutée séparément pour chaque compte sur lequel vous souhaitez exécuter des commandes. Si vous ne souhaitez pas appeler d’opérations au niveau du compte, passez à l’étape 5.

    Dans la commande suivante, remplacez les espaces réservés suivants :

    databricks auth login --host <account-console-url> --account-id <account-id>
    
  2. L’interface CLI Databricks vous invite à enregistrer l’URL de la console de compte et l’ID de compte localement en tant que profil de configuration Azure Databricks. Appuyez sur Enter pour accepter le nom de profil suggéré, ou entrez le nom d’un profil nouveau ou existant. Tout profil existant portant le même nom est remplacé par cet ID de compte et cette URL de console de compte.

    Pour obtenir la liste des profils existants, dans un terminal ou une invite de commandes distincts, exécutez la commande databricks auth profiles. Pour voir les paramètres existants d’un profil spécifique, exécutez la commande databricks auth env --profile <profile-name>.

  3. Dans votre navigateur web, suivez les instructions à l’écran pour vous connecter à votre compte Azure Databricks.

  4. Pour afficher la valeur actuelle du jeton OAuth et l’horodatage d’expiration à venir, exécutez la commande databricks auth token --host <account-console-url> --account-id <account-id>.

  5. Avant d’appeler des commandes au niveau de l’espace de travail Azure Databricks, vous devez lancer la gestion des jetons OAuth localement en exécutant la commande suivante. Cette commande doit être exécutée séparément pour chaque espace de travail sur lequel vous souhaitez exécuter des commandes.

    Dans la commande suivante, remplacez <workspace-url> par votre URL d’espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  6. L’interface CLI Databricks vous invite à enregistrer l’URL de l’espace de travail localement en tant que profil de configuration Azure Databricks. Appuyez sur Enter pour accepter le nom de profil suggéré, ou entrez le nom d’un profil nouveau ou existant. Tout profil existant portant le même nom est remplacé par cette URL d’espace de travail.

    Pour obtenir la liste des profils existants, dans un terminal ou une invite de commandes distincts, exécutez la commande databricks auth profiles. Pour voir les paramètres existants d’un profil spécifique, exécutez la commande databricks auth env --profile <profile-name>.

  7. Dans votre navigateur web, suivez les instructions à l’écran pour vous connecter à votre espace de travail Azure Databricks.

  8. Pour afficher la valeur actuelle du jeton OAuth et l’horodatage d’expiration à venir, exécutez la commande databricks auth token --host <workspace-url>.

  9. Utilisez l’option --profile ou -p de l’interface CLI Databricks suivie du nom de votre profil de configuration, dans le cadre de l’appel de commande CLI Databricks, par exemple databricks account groups list -p <configuration-profile-name> ou databricks clusters list -p <configuration-profile-name>.

    Conseil

    Vous pouvez appuyer sur Tab après --profile ou -p pour afficher une liste de profils de configuration disponibles existants à choisir, au lieu d’entrer manuellement le nom du profil de configuration.

Authentification des identités managées Azure

L’authentification des identités managées Azure utilise des identités managées pour les ressources Azure (anciennement Managed Service Identities (MSI)) pour l’authentification. Consultez Que sont les identités managées pour les ressources Azure ? Consultez également Authentification des identités managées Azure.

Pour créer une identité managée affectée par l’utilisateur Azure, procédez comme suit :

  1. Créez ou identifiez une machine virtuelle Azure et installez l’interface CLI Databricks sur celle-ci, puis affectez votre identité managée à votre machine virtuelle Azure et à vos comptes Azure Databricks, espaces de travail ou les deux cibles. Consultez Configurer et utiliser l’authentification des identités managées Azure pour l’automatisation Azure Databricks.

  2. Sur la machine virtuelle Azure, 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 les commandes au niveau du compte, définissez les valeurs suivantes dans votre fichier .databrickscfg :

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

    Pour les commandes au niveau de l’espace de travail, définissez les valeurs suivantes dans votre fichier .databrickscfg :

    [<some-unique-configuration-profile-name>]
    host            = <workspace-url>
    azure_client_id = <azure-managed-identity-application-id>
    azure_use_msi   = true
    

    Pour les commandes au niveau de l’espace de travail, si l’identité cible n’a pas encore été ajoutée à l’espace de travail, spécifiez azure_workspace_resource_id avec l’ID de ressource Azure, au lieu de host avec l’URL de l’espace de travail. Dans ce cas, l’identité cible doit avoir au moins les autorisations Contributeur ou Propriétaire sur la ressource Azure.

    Remarque

    L’emplacement par défaut du .databrickscfg fichier se trouve dans le répertoire de base de l’utilisateur. Il s’agit ~ de Linux et macOS, et %USERPROFILE% pour Windows.

  3. Sur la machine virtuelle Azure, utilisez l’option --profile ou -p de CLI Databricks suivie du nom de votre profil de configuration pour définir le profil pour Databricks à utiliser, par exemple databricks account groups list -p <configuration-profile-name> ou databricks clusters list -p <configuration-profile-name>.

    Conseil

    Vous pouvez appuyer sur Tab après --profile ou -p pour afficher une liste de profils de configuration disponibles existants à choisir, au lieu d’entrer manuellement le nom du profil de configuration.

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 Gérer les principaux de service. Consultez également Authentification du principal du service Microsoft Entra ID.

Pour que vous puissiez configurer et utiliser l’authentification du principal de service Microsoft Entra ID, l’interface Azure CLI doit être installée localement. Vous devez également effectuer les étapes suivantes :

  1. 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 les commandes au niveau du compte, définissez les valeurs suivantes dans votre fichier .databrickscfg :

    [<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 commandes au niveau de l’espace de travail, définissez les valeurs suivantes dans votre fichier .databrickscfg :

    [<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 commandes au niveau de l’espace de travail, si le principal de service Microsoft Entra ID cible n’a pas encore été ajouté à l’espace de travail, spécifiez azure_workspace_resource_id avec l’ID de ressource Azure, au lieu de host avec l’URL de l’espace de travail. Dans ce cas, le principal de service Microsoft Entra ID cible doit avoir au moins l’autorisation Contributeur ou Propriétaire sur la ressource Azure.

    Remarque

    L’emplacement par défaut du .databrickscfg fichier se trouve dans le répertoire de base de l’utilisateur. Il s’agit ~ de Linux et macOS, et %USERPROFILE% pour Windows.

  2. Utilisez l’option --profile ou -p de l’interface CLI Databricks suivie du nom de votre profil de configuration, dans le cadre de l’appel de commande CLI Databricks, par exemple databricks account groups list -p <configuration-profile-name> ou databricks clusters list -p <configuration-profile-name>.

    Conseil

    Vous pouvez appuyer sur Tab après --profile ou -p pour afficher une liste de profils de configuration disponibles existants à choisir, au lieu d’entrer manuellement le nom du profil de configuration.

Authentification Azure CLI

L’authentification Azure CLI utilise Azure CLI pour authentifier l’entité connectée. Consultez également la section Authentification Azure CLI.

Pour configurer l’authentification Azure CLI, vous devez effectuer les opérations suivantes :

  1. Installer Azure CLI localement.

  2. Utiliser Azure CLI pour vous connecter à Azure Databricks en exécutant la commande az login. Consulter Connexion à Azure CLI avec un compte d’utilisateur Azure Databricks.

  3. 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 les commandes au niveau du compte, définissez les valeurs suivantes dans votre fichier .databrickscfg :

    [<some-unique-configuration-profile-name>]
    host       = <account-console-url>
    account_id = <account-id>
    

    Pour les commandes au niveau de l’espace de travail, définissez les valeurs suivantes dans votre fichier .databrickscfg :

    [<some-unique-configuration-profile-name>]
    host = <workspace-url>
    

    Remarque

    L’emplacement par défaut du .databrickscfg fichier se trouve dans le répertoire de base de l’utilisateur. Il s’agit ~ de Linux et macOS, et %USERPROFILE% pour Windows.

  4. Utilisez l’option --profile ou -p de l’interface CLI Databricks suivie du nom de votre profil de configuration, dans le cadre de l’appel de commande CLI Databricks, par exemple databricks account groups list -p <configuration-profile-name> ou databricks clusters list -p <configuration-profile-name>.

    Conseil

    Vous pouvez appuyer sur Tab après --profile ou -p pour afficher une liste de profils de configuration disponibles existants à choisir, au lieu d’entrer manuellement le nom du profil de configuration.

Ordre d’évaluation de l’authentification

Chaque fois que l’interface CLI Databricks doit collecter les paramètres nécessaires à l’authentification auprès d’un espace de travail ou d’un compte Azure Databricks, elle recherche ces paramètres aux emplacements ci-dessous, dans l’ordre suivant.

  1. Pour les commandes bundle, les valeurs des champs dans les fichiers de paramètres groupés d’un projet. (Les fichiers de paramètres groupés ne prennent pas en charge l’inclusion directe des valeurs d’informations d’identification d’accès.)
  2. Les valeurs des variables d’environnement, comme indiqué dans cet article et dans la section Variables et champs d’environnement pour l’authentification unifiée du client.
  3. Les valeurs des champs de profil de configuration dans le fichier .databrickscfg, comme indiqué précédemment dans cet article.

Chaque fois que l’interface CLI Databricks trouve les paramètres requis dont elle a besoin, elle interrompt la recherche aux autres emplacements. Par exemple :

  • L’interface CLI Databricks a besoin de la valeur d’un jeton d’accès personnel Azure Databricks. Une variable d’environnement DATABRICKS_TOKEN est définie et le fichier .databrickscfg contient également plusieurs jetons d’accès personnels. Dans cet exemple, l’interface CLI Databricks utilise la valeur de la variable d’environnement DATABRICKS_TOKEN et n’examine pas le fichier .databrickscfg.
  • La commande databricks bundle deploy -e development a besoin de la valeur d’un jeton d’accès personnel Azure Databricks. Une variable d’environnement DATABRICKS_TOKEN n’est pas définie et le fichier .databrickscfg contient plusieurs jetons d’accès personnels. Le fichier de paramètres groupés du projet contient une déclaration d’environnement development qui fait référence via son champ profile à un profil de configuration nommé DEV. Dans cet exemple, l’interface CLI Databricks recherche dans le fichier .databrickscfg un profil nommé DEV et utilise la valeur du champ token de ce profil.
  • La commande databricks bundle run -e development hello-job a besoin de la valeur d’un jeton d’accès personnel Azure Databricks. Une variable d’environnement DATABRICKS_TOKEN n’est pas définie et le fichier .databrickscfg contient plusieurs jetons d’accès personnels. Le fichier de paramètres groupés du projet contient une déclaration d’environnement development qui fait référence via son champ host à une URL d’espace de travail Azure Databricks spécifique. Dans cet exemple, l’interface CLI Databricks recherche dans les profils de configuration du fichier .databrickscfg un profil qui contient un champ host avec une URL d’espace de travail correspondante. L’interface CLI Databricks trouve un champ host correspondant, puis utilise la valeur du champ token de ce profil.