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
- Utilisez le Portail Azure pour vous connecter au locataire Azure de votre compte Azure Databricks à l’adresse
https://portal.azure.com/<tenant-id>
. - 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.
- Cliquez sur Nouvelle inscription.
- Entrez un Nom pour l'application.
- 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
. - Cliquez sur S'inscrire.
- 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
- Dans le Portail Microsoft Azure, sélectionnez l’inscription d’application que vous avez créée à l’étape précédente.
- Cliquez sur Certificats et secrets, puis cliquez sur Nouveau secret client.
- Entrez une description, puis cliquez sur Ajouter.
- 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
- Dans votre espace de travail Azure Databricks, cliquez sur votre nom d’utilisateur en haut à droite, puis cliquez sur Paramètres.
- Cliquez sur l’onglet Identité et accès.
- Près de Principaux de service, cliquez sur Gérer.
- Cliquez sur Ajouter un principal de service, puis sur ID client.
- Pour ApplicationId, entrez l’ID d’application (client) que vous avez copié précédemment.
- Pour Afficher un nom, entrez un nom logique pour votre principal de service, puis cliquez sur Ajouter.
Ajoutez le profil M2M à votre projet dbt
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>
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 M2Mazure-oauth-m2m
spécifié. La spécification deazure-oauth-m2m
pourtarget
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
- Dans la barre latérale, cliquez sur SQL Warehouses, cliquez sur votre SQL Warehouse, puis cliquez sur Autorisations.
- À 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
- Utilisez le Portail Azure pour vous connecter au locataire Azure de votre compte Azure Databricks à l’adresse
https://portal.azure.com/<tenant-id>
. - 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.
- Cliquez sur Nouvelle inscription.
- Entrez un Nom pour l'application.
- 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
. - Cliquez sur S'inscrire.
- 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
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.
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.