Aller au contenu principal

Authentification pour la CLI Databricks

remarque

L'utilisation de Databricks CLI est soumise à la licence Databricks et à la politique de confidentialité Databricks, y compris toutes les dispositions relatives aux données d'utilisation.

Cet article explique comment configurer l'authentification entre la CLI Databricks et vos comptes et Workspaces Databricks. Il est supposé que vous avez déjà installé la CLI Databricks. Consultez Installer ou mettre à jour la CLI Databricks.

Avant d’exécuter les commandes CLI Databricks, vous devez configurer l’ authentification pour les comptes ou les workspaces que vous prévoyez d’utiliser. La configuration requise dépend de si vous souhaitez exécuter des commandes au niveau du Workspace, des commandes au niveau du compte ou les deux.

Pour afficher les groupes de commandes CLI disponibles, exécutez databricks -h. Pour la liste des opérations d'API REST correspondantes, consultez API REST Databricks.

Authentification OAuth machine à machine (M2M)

L'authentification de machine à machine (M2M) avec OAuth permet aux services, scripts ou applications d'accéder aux ressources Databricks sans connexion utilisateur interactive. Au lieu de s'appuyer sur des jetons d'accès personnels (PAT) ou des informations d'identification utilisateur, l'authentification M2M utilise un Service Principal et un flux d'informations d'identification client OAuth pour demander et gérer les jetons.

Pour configurer et utiliser l'authentification OAuth M2M :

  1. Terminez les étapes de configuration de l’authentification OAuth M2M. Consultez Autoriser l'accès de service principal à Databricks avec OAuth.

  2. Créez un profil de configuration Databricks avec les champs suivants dans votre fichier .databrickscfg.

    Pour les commandes au niveau du compte

    [<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 du Workspace.

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

Pour utiliser le profil, transmettez-le avec l'indicateur --profile ou -p dans les commandes CLI. Par exemple :

Bash
databricks account groups list -p <profile-name>

Appuyez sur Tab après --profile ou -p pour afficher une liste des profils disponibles.

Authentification OAuth d'utilisateur à machine (U2M)

Avec l'authentification OAuth utilisateur-machine (U2M), vous vous connectez de manière interactive et le CLI gère les jetons de courte durée en votre nom. Les jetons OAuth expirent en moins d'une heure, ce qui réduit le risque si un jeton est accidentellement exposé. Consultez Autoriser l'accès utilisateur à Databricks avec OAuth.

Connexion :

Pour les commandes au niveau du compte

Bash
databricks auth login --host <account-console-url> --account-id <account-id>

Pour les commandes au niveau du Workspace.

Bash
databricks auth login --host <workspace-url>

La CLI vous guide tout au long d'un flux de connexion basé sur le navigateur. Lorsque vous avez terminé, la CLI enregistre un profil de configuration avec votre hôte de Workspace et le nom de profil. Vous pouvez accepter le nom de profil suggéré ou saisir le vôtre.

remarque

Si vous disposez de l'autorisation d'assumer un ou plusieurs rôles, vous choisissez de vous authentifier en tant que votre propre identité d'utilisateur ou en tant que l'un de ces rôles dans votre navigateur web, dans le cadre du flux d'authentification. Le profil résultant autorise les commandes en tant qu'identité que vous sélectionnez. See CLI.

Pour utiliser le profil, transmettez-le avec l'indicateur --profile ou -p dans les commandes CLI. Par exemple :

Bash
databricks clusters list -p <profile-name>

Appuyez sur Tab après --profile ou -p pour afficher une liste des profils disponibles.

Stockage des jetons

Par default à partir de la version 1.0.0 de la CLI Databricks, Les jetons U2M sont stockés dans un stockage sécurisé natif du système d'exploitation : Trousseau sur macOS, Gestionnaire d'informations d'identification sur Windows et D-Bus Secret Service sur Linux. Votre fichier .databrickscfg ne contient que des configurations non secrètes telles que le nom d'hôte et le nom de profil. Le jeton lui-même n'y est jamais écrit.

Chaque profil a son propre jeton mis en cache. Si vous avez plusieurs profils pointant vers le même workspace, la déconnexion de l'un n'entraîne pas la déconnexion des autres.

Si votre environnement ne prend pas en charge le stockage sécurisé natif du système d'exploitation (par exemple, un serveur sans interface graphique ou un environnement CI), vous pouvez revenir au stockage de jetons en texte clair.

Pour le dépannage des erreurs de stockage sécurisé, consultez Dépanner la CLI Databricks.

Utiliser le fallback en texte brut

Si votre environnement ne prend pas en charge le stockage sécurisé, ou si vous dépendez d'un stockage de jetons basé sur des fichiers (par exemple, la synchronisation du fichier d'identifiants via SSH), vous pouvez configurer la CLI pour utiliser le fichier JSON brut avec l'une des options suivantes. Après avoir configuré l'une ou l'autre option, exécutez databricks auth login à nouveau.

  • Configurez la variable d'environnement DATABRICKS_AUTH_STORAGE.

    Bash
    export DATABRICKS_AUTH_STORAGE=plaintext
  • Définissez le paramètre auth_storage dans le fichier profil de configuration Databricks ~/.databrickscfg.

    ini
    [__settings__]
    auth_storage = plaintext

La variable d'environnement prévaut sur le paramètre du profil de configuration.

Ordre d'évaluation de l'authentification

Chaque fois que le Databricks CLI s'authentifie auprès d'un Workspace ou d'un compte Databricks, il recherche les paramètres requis dans l'ordre suivant :

  1. **Fichiers de paramètres de bundle**, pour les commandes exécutées à partir d'un répertoire de travail de bundle. Les fichiers de paramètres de bundle ne peuvent pas contenir directement les valeurs d'identifiants.
  2. Variables d'environnement , telles qu'elles sont répertoriées dans cet article et dans Variables d'environnement et champs pour l'authentification unifiée.
  3. Profils de configuration dans le fichier .databrickscfg.

Dès que le CLI trouve le paramètre requis, il cesse de chercher d'autres emplacements.

Exemples :

  • Si une variable d’environnement DATABRICKS_TOKEN est définie, la CLI l’utilise, même si plusieurs tokens existent dans .databrickscfg.
  • Si aucun DATABRICKS_TOKEN n'est défini et qu'un environnement de bundle référence un nom de profil tel que dev → profil DEV, la CLI utilise les informations d'identification de ce profil dans .databrickscfg.
  • Si aucun DATABRICKS_TOKEN n'est défini et qu'un environnement de bundle spécifie une valeur host, la CLI recherche un profil dans .databrickscfg avec un host correspondant et utilise son token.

Authentification par jeton d'accès personnel (hérité)

important

Dans la mesure du possible, Databricks recommande d'utiliser OAuth plutôt que des PAT pour l'authentification des comptes utilisateur, car OAuth offre une sécurité renforcée. Prenez en compte les méthodes d'authentification suivantes :

L'authentification par jeton d'accès personnel Databricks utilise un jeton d'accès personnel Databricks pour authentifier l'entité Databricks cible, telle qu'un compte utilisateur Databricks ou un Service Principal Databricks. Consultez S'authentifier avec les jetons d'accès personnels Databricks (hérité).

Pour créer un jeton d'accès personnel, suivez les étapes de Créer des jetons d'accès personnels pour les utilisateurs de Workspace.