Partager via


Configurer la connexion Azure Databricks à partir de dbt Core avec Microsoft Entra ID

Important

Cette fonctionnalité est disponible en préversion publique.

Cet article décrit comment configurer la connexion Azure Databricks depuis dbt Core avec Microsoft Entra ID. Après avoir effectué cette configuration unique en tant qu'administrateur d'un compte Azure Databricks, les utilisateurs peuvent se connecter à Azure Databricks et à dbt Core à l'aide de l'authentification unique (SSO).

Outre l’utilisation de Microsoft Entra ID, vous pouvez utiliser Databricks M2M OAuth pour l’intégrer à dbt Core. Consultez Activer ou désactiver des applications OAuth de partenaires.

Avant de commencer

Avant de suivre les étapes décrites dans cet article, vous devez :

  • Avoir accès à un environnement dbt Core local
  • Obtenez le nom d'hôte du serveur et le chemin HTTP pour un entrepôt SQL dans votre espace de travail Azure Databricks
  • Être administrateur de compte Azure Databricks
  • Avoir l’autorisation de créer une inscription d’application Azure dans le locataire Azure pour votre compte Azure Databricks.

Configurer l'authentification machine à machine (M2M) pour dbt Core

Cette section décrit comment configurer l'authentification machine à machine (M2M) pour Azure Databricks et dbt Core. Le flux de travail M2M d'OAuth permet aux processus automatisés, comme l'intégration CI/CD, d'accéder en toute sécurité aux ressources sans intervention humaine. Le client dbt s'exécute en tant que principal de service, acquiert un jeton OAuth auprès d'Azure AD à l'aide du principal de service et utilise ce jeton pour se connecter à l'API SQL Databricks.

Créer une inscription d'application Azure

  1. Utilisez le Portail Azure pour vous connecter au locataire Azure de votre compte Azure Databricks à l’adresse https://portal.azure.com/<tenant-id>.
  2. Cliquez sur Inscriptions des applications. Si les Inscriptions des applications ne sont pas visibles, cliquez sur Autres services et utilisez la zone de texte Filtrer les services pour rechercher Inscriptions des applications.
  3. Cliquez sur Nouvelle inscription.
  4. Entrez un Nom pour l'application.
  5. Pour l’URI de redirection, sélectionnez Client public/natif (ordinateur de bureau et mobile) dans le menu déroulant et saisissez http://localhost:8020.
  6. Cliquez sur S'inscrire.
  7. Copiez l’ID de l’application (client). Vous aurez besoin de cette valeur ultérieurement.

Générez un secret client pour l'inscription de votre Azure Application

  1. Dans le Portail Microsoft Azure, sélectionnez l’inscription d’application que vous avez créée à l’étape précédente.
  2. Cliquez sur Certificats et secrets, puis cliquez sur Nouveau secret client.
  3. Entrez une description, puis cliquez sur Ajouter.
  4. Copiez la valeur secrète. Vous aurez besoin de cette valeur plus tard et vous ne pourrez y accéder qu’après la création du secret.

Ajoutez le principal de service Microsoft Entra ID à votre espace de travail

  1. Dans votre espace de travail Azure Databricks, cliquez sur votre nom d’utilisateur en haut à droite, puis cliquez sur Paramètres.
  2. Cliquez sur l’onglet Identité et accès.
  3. Près de Principaux de service, cliquez sur Gérer.
  4. Cliquez sur Ajouter un principal de service, puis sur ID client.
  5. Pour ApplicationId, entrez l’ID d’application (client) que vous avez copié précédemment.
  6. Pour Afficher un nom, entrez un nom logique pour votre principal de service, puis cliquez sur Ajouter.

Ajoutez le profil M2M à votre projet dbt

  1. Définissez l'ID d'application (client) et le secret client que vous avez copiés précédemment en tant que variables d'environnement. Databricks ne recommande pas de stocker directement des informations sensibles telles que des secrets dans profiles.yml.

    ~ export DATABRICKS_CLIENT_ID=<client-id>
    ~ export DATABRICKS_CLIENT_SECRET=<client-secret>
    
  2. Ajoutez le profil M2M au fichier profiles.yml dans votre projet dbt.

    Ce qui suit est un exemple de fichier profiles.yml avec le profil M2M azure-oauth-m2m spécifié. La spécification de azure-oauth-m2m pour target définit le profil M2M comme profil d'exécution par défaut utilisé par dbt.

    databricks_demo:
      outputs:
        ...
        azure-oauth-m2m:
          catalog: uc_demos
          host: "adb-xxx.azuredatabricks.net"
          http_path: "/sql/1.0/warehouses/9196548d010cf14d"
          schema: databricks_demo
          threads: 1
          type: databricks
          auth_type: oauth
          client_id: "{{ env_var('DATABRICKS_CLIENT_ID') }}"
          client_secret: "{{ env_var('DATABRICKS_CLIENT_SECRET') }}"
    target: azure-oauth-m2m
    

Autorisez votre principal de service à accéder à un entrepôt SQL

  1. Dans la barre latérale, cliquez sur SQL Warehouses, cliquez sur votre SQL Warehouse, puis cliquez sur Autorisations.
  2. À côté du principal de service créé plus tôt dans cet article, sélectionnez PEUT UTILISER dans le menu déroulant.

Vérifier la configuration de l'application OAuth

Exécutez la commande dbt debug pour vérifier que votre application OAuth a été correctement configurée. Par exemple :

dbt debug --target azure-oauth-m2m

Voici un exemple de résultat d’une exécution dbt debug réussie :

  ...
  Configuration:
    profiles.yml file [OK found and valid]
    dbt_project.yml file [OK found and valid]

  Required dependencies:
    - git [OK found]

  Connection:
    ...
    Connection test: OK connection ok

Configurer l'authentification utilisateur-machine (U2M) pour dbt Core

Cette section décrit comment configurer l'authentification utilisateur-machine avec Azure Databricks et dbt Core. Le workflow U2M d'OAuth permet l'accès aux systèmes au nom d'un utilisateur, comme le client dbt, en obtenant en toute sécurité un jeton OAuth via une fenêtre contextuelle de navigateur depuis Azure AD. Dbt utilise ce jeton pour se connecter à l'API SQL Databricks, simplifiant ainsi l'authentification et l'autorisation.

Créer une inscription d'application Azure

  1. Utilisez le Portail Azure pour vous connecter au locataire Azure de votre compte Azure Databricks à l’adresse https://portal.azure.com/<tenant-id>.
  2. Cliquez sur Inscriptions des applications. Si les Inscriptions des applications ne sont pas visibles, cliquez sur Autres services et utilisez la zone de texte Filtrer les services pour rechercher Inscriptions des applications.
  3. Cliquez sur Nouvelle inscription.
  4. Entrez un Nom pour l'application.
  5. Pour l’URI de redirection, sélectionnez Client public/natif (ordinateur de bureau et mobile) dans le menu déroulant et saisissez http://localhost:8020.
  6. Cliquez sur S'inscrire.
  7. Copiez l'ID d'application (client) et l'ID de locataire. Vous aurez besoin de ces valeurs plus tard.

Ajoutez le profil U2M à votre projet dbt

Ajoutez le profil U2M au fichier profiles.yml dans votre projet dbt.

Ce qui suit est un exemple de fichier profiles.yml avec le profil U2M azure-oauth-u2m spécifié. La spécification de azure-oauth-u2m pour target définit le profil U2M comme profil d'exécution par défaut utilisé par dbt.

databricks_demo:
outputs:
  azure-oauth-u2m:
    catalog: uc_demos
    host: "adb-xxx.azuredatabricks.net"
    http_path: "/sql/1.0/warehouses/9196548d010cf14d"
    schema: databricks_demo
    threads: 1
    type: databricks
    auth_type: oauth
    client_id: "9729e77e-ba94-4d53-8cfb-bb609f43f881"
target: azure-oauth-u2m

Vérifier la configuration de l'application OAuth

  1. Exécutez la commande dbt debug pour vérifier que votre application OAuth a été correctement configurée. Par exemple :

    dbt debug --target azure-oauth-u2m
    

    La page Autorisations demandées s’ouvre dans votre navigateur.

  2. Cliquez sur Accepter.

Voici un exemple de résultat d’une exécution dbt debug réussie :

...
Configuration:
  profiles.yml file [OK found and valid]
  dbt_project.yml file [OK found and valid]

Required dependencies:
  - git [OK found]

Connection:
  ...
  Connection test: OK connection ok

Ressources supplémentaires

Pour créer un projet dbt Core et vous connecter à Azure Databricks en utilisant l’authentification unique, consultez Se connecter à dbt Core.