Configuración del inicio de sesión de Azure Databricks desde dbt Core con microsoft Entra ID
Importante
Esta característica está en versión preliminar pública.
En este artículo se describe cómo configurar el inicio de sesión de Azure Databricks desde dbt Core con Microsoft Entra ID. Después de completar esta configuración puntual como administrador de cuentas de Azure Databricks, los usuarios pueden conectar Azure Databricks a dbt Core mediante el inicio de sesión único (SSO).
Además de usar Microsoft Entra ID, puede usar Databricks M2M OAuth para integrarse con dbt Core. Consulte Habilitar o deshabilitar aplicaciones de OAuth asociadas.
Antes de empezar
Antes de completar los pasos de este artículo, debe:
- Tener acceso a un entorno de dbt Core local
- Obtenga el nombre de host del servidor y la ruta de acceso HTTP para un almacén de SQL en el área de trabajo de Azure Databricks
- Ser administrador de cuentas de Azure Databricks
- Debe tener permiso para crear un registro de aplicación de Azure en el inquilino de Azure para la cuenta de Azure Databricks.
Configurar la autenticación de máquina a máquina (M2M) para dbt Core
En esta sección se describe cómo configurar la autenticación de máquina a máquina (M2M) para Azure Databricks y dbt Core. El flujo de trabajo de M2M de OAuth permite a los procesos automatizados, como la integración de CI/CD, acceder de forma segura a los recursos sin intervención humana. El cliente dbt se ejecuta como una entidad de servicio, adquiere un token de OAuth de Azure AD mediante la entidad de servicio y utiliza este token para conectarse con la API de SQL de Databricks.
Crear un registro de aplicaciones de Azure
- Use el Azure Portal para iniciar sesión en el inquilino de Azure para la cuenta de Azure Databricks, en
https://portal.azure.com/<tenant-id>
. - Haga clic en Registros de aplicaciones. Si Registros de aplicaciones no está visible, haga clic en Más servicios y use el cuadro de texto Filtrar servicios para buscar Registros de aplicaciones.
- Haga clic en Nuevo registro.
- Escriba un Nombre para la aplicación.
- Para URI de redirección, seleccione Cliente público o nativo (móvil y escritorio) en el menú desplegable y escriba
http://localhost:8020
. - Haga clic en Registrar.
- Copie el Id. de aplicación (cliente) . Este valor lo necesitará más adelante.
Generar un secreto de cliente para el registro de App de Azure
- En Azure Portal, seleccione el registro de aplicación que creó en el paso anterior.
- Haga clic en Certificados y secretos, y luego haga clic en Nuevo secreto de cliente.
- Escriba una descripción y haga clic en Agregar.
- Copie el valor del secreto. Necesitará este valor más adelante y solo podrá acceder a él después de la creación del secreto.
Agregue la entidad de servicio de Microsoft Entra ID al área de trabajo
- En el área de trabajo de Azure Databricks, haga clic en el nombre de usuario en la parte superior derecha y, a continuación, haga clic en Configuración.
- Haga clic en la pestaña Identidad y acceso.
- Junto a Entidades de servicio, haga clic en Administrar.
- Haga clic en Agregar entidad de servicio y, a continuación, haga clic en Id. de cliente.
- En ApplicationId, escriba el Id. de aplicación (cliente) que copió anteriormente.
- En Nombre para mostrar, escriba un nombre lógico para la entidad de servicio y haga clic en Agregar.
Agregar el perfil de M2M al proyecto de dbt
Establezca el Id. de aplicación (cliente) y el secreto de cliente que copió anteriormente como variables de entorno. Databricks no recomienda almacenar información confidencial como secretos en
profiles.yml
directamente.~ export DATABRICKS_CLIENT_ID=<client-id> ~ export DATABRICKS_CLIENT_SECRET=<client-secret>
Agregar el perfil de M2M al archivo
profiles.yml
en el proyecto de dbt.A continuación se muestra un archivo de ejemplo
profiles.yml
con el perfil M2Mazure-oauth-m2m
especificado. Al especificarazure-oauth-m2m
paratarget
se establece el perfil de M2M como perfil de ejecución predeterminado que usa 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
Autorizar la entidad de servicio para acceder a un almacén de SQL
- En la barra lateral, haga clic en Almacenes de SQL, haga clic en el almacén de SQL y, a continuación, haga clic en Permisos.
- Junto a la entidad de servicio que creó anteriormente en este artículo, seleccione PUEDE USAR en el menú desplegable.
Comprobar la configuración de la aplicación OAuth
Ejecute el comando dbt debug
para comprobar que la aplicación OAuth se ha configurado correctamente. Por ejemplo:
dbt debug --target azure-oauth-m2m
A continuación se muestra una salida de ejemplo de una ejecución correcta dbt debug
:
...
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
Configurar la autenticación de usuario a máquina (U2M) para dbt Core
En esta sección se describe cómo configurar la autenticación de usuario a máquina con Azure Databricks y dbt Core. El flujo de trabajo U2M de OAuth permite que los sistemas accedan en nombre de un usuario, como el cliente dbt, obteniendo de forma segura un token de OAuth a través de un elemento emergente del explorador desde Azure AD. Dbt usa este token para conectarse a la API de SQL de Databricks, lo que simplifica la autenticación y la autorización.
Crear un registro de aplicaciones de Azure
- Use el Azure Portal para iniciar sesión en el inquilino de Azure para la cuenta de Azure Databricks, en
https://portal.azure.com/<tenant-id>
. - Haga clic en Registros de aplicaciones. Si Registros de aplicaciones no está visible, haga clic en Más servicios y use el cuadro de texto Filtrar servicios para buscar Registros de aplicaciones.
- Haga clic en Nuevo registro.
- Escriba un Nombre para la aplicación.
- Para URI de redirección, seleccione Cliente público o nativo (móvil y escritorio) en el menú desplegable y escriba
http://localhost:8020
. - Haga clic en Registrar.
- Copie el Id. de aplicación (cliente) y el Id. de inquilino. Estos valores se necesitarán más adelante.
Agregar el perfil de U2M al proyecto de dbt
Agregar el perfil U2M al archivo profiles.yml
en el proyecto de dbt.
A continuación se muestra un archivo de ejemplo profiles.yml
con el perfil U2M azure-oauth-u2m
especificado. Al especificar azure-oauth-u2m
para target
se establece el perfil U2M como el perfil de ejecución predeterminado que usa 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
Comprobar la configuración de la aplicación OAuth
Ejecute el comando
dbt debug
para comprobar que la aplicación OAuth se ha configurado correctamente. Por ejemplo:dbt debug --target azure-oauth-u2m
La página Permisos solicitados se abre en el explorador.
Haga clic en Aceptar.
A continuación se muestra una salida de ejemplo de una ejecución correcta dbt debug
:
...
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
Recursos adicionales
Para crear un nuevo proyecto de dbt Core y conectarse a Azure Databricks mediante la autenticación de SSO, consulte Conexión a dbt Core.