Configurare l'accesso ad Azure Databricks da dbt Core con Microsoft Entra ID
Importante
Questa funzionalità è disponibile in anteprima pubblica.
Questo articolo descrive come configurare l'accesso ad Azure Databricks da dbt Core con Microsoft Entra ID. Dopo aver completato questa configurazione una tantum come amministratore dell'account Azure Databricks, gli utenti possono connettere Azure Databricks a dbt Core usando l'accesso Single Sign-On (SSO).
Oltre a usare Microsoft Entra ID, è possibile usare Databricks M2M OAuth per l'integrazione con dbt Core. Vedere Abilitare o disabilitare le applicazioni OAuth dei partner.
Operazioni preliminari
Prima di completare i passaggi descritti in questo articolo, è necessario:
- Avere accesso a un ambiente dbt Core locale
- Ottenere il nome host del server e il percorso HTTP per un'istanza di SQL Warehouse nell'area di lavoro di Azure Databricks
- Essere un amministratore dell'account Azure Databricks
- Avere l'autorizzazione per creare una registrazione dell'app di Azure nel tenant di Azure per l'account Azure Databricks.
Configurare l'autenticazione da computer a computer (M2M) per dbt Core
Questa sezione descrive come configurare l'autenticazione da computer a computer (M2M) per Azure Databricks e dbt Core. Il flusso di lavoro M2M di OAuth consente processi automatizzati, come l'integrazione CI/CD, di accedere in modo sicuro alle risorse senza intervento umano. Il client dbt viene eseguito come entità servizio, acquisisce un token OAuth da Azure AD usando l'entità servizio e usa questo token per connettersi all'API SQL di Databricks.
Creare una registrazione dell'app di Azure
- Usare il portale di Azure per accedere al tenant di Azure per l'account Azure Databricks all'indirizzo
https://portal.azure.com/<tenant-id>
. - Fare clic su Registrazioni per l'app. Se Registrazioni app non è visibile, fare clic su Altri servizi e usare la casella di testo Filtra servizi per cercare Registrazioni app.
- Fare clic su Nuova registrazione.
- Immettere un nome per l'app.
- Per URI di reindirizzamento selezionare Client pubblico/nativo (mobile e desktop) dal menu a discesa e immettere
http://localhost:8020
. - Fare clic su Registra.
- Copia l'ID Application (client). Questo valore sarà necessario in un secondo momento.
Generare un segreto client per la registrazione app Azure
- Nella portale di Azure selezionare la registrazione dell'app creata nel passaggio precedente.
- Fare clic su Certificati e segreti e quindi su Nuovo segreto client.
- Immettere una descrizione e quindi fare clic su Aggiungi.
- Copiare il valore del segreto. Questo valore sarà necessario in un secondo momento ed è possibile accedervi solo dopo la creazione del segreto.
Aggiungere l'entità servizio Microsoft Entra ID all'area di lavoro
- Nell'area di lavoro di Azure Databricks fare clic sul nome utente in alto a destra e quindi su Impostazioni.
- Fare clic sulla scheda Identità e accesso.
- Accanto a Entità servizio fare clic su Gestisci.
- Fare clic su Aggiungi entità servizio e quindi su ID client.
- Per ApplicationId immettere l'ID applicazione (client) copiato in precedenza.
- Per Nome visualizzato immettere un nome logico per l'entità servizio e quindi fare clic su Aggiungi.
Aggiungere il profilo M2M al progetto dbt
Impostare l'ID applicazione (client) e il segreto client copiati in precedenza come variabili di ambiente. Databricks non consiglia di archiviare direttamente informazioni riservate, ad esempio segreti
profiles.yml
.~ export DATABRICKS_CLIENT_ID=<client-id> ~ export DATABRICKS_CLIENT_SECRET=<client-secret>
Aggiungere il profilo M2M al
profiles.yml
file nel progetto dbt.Di seguito è riportato un file di esempio
profiles.yml
con il profiloazure-oauth-m2m
M2M specificato. Specificandoazure-oauth-m2m
pertarget
imposta il profilo M2M come profilo di esecuzione predefinito usato da 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
Autorizzare l'entità servizio ad accedere a un'entità servizio di SQL Warehouse
- Nella barra laterale fare clic su SQL Warehouse, fare clic su SQL Warehouse e quindi su Autorizzazioni.
- Accanto all'entità servizio creata in precedenza in questo articolo, selezionare CAN USE (CAN USE) dal menu a discesa.
Verificare la configurazione dell'applicazione OAuth
Eseguire il comando per verificare che l'applicazione dbt debug
OAuth sia stata configurata correttamente. Ad esempio:
dbt debug --target azure-oauth-m2m
Di seguito è riportato un esempio di output di un'esecuzione riuscita 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
Configurare l'autenticazione da utente a computer (U2M) per dbt Core
Questa sezione descrive come configurare l'autenticazione da utente a computer con Azure Databricks e dbt Core. Il flusso di lavoro U2M di OAuth consente ai sistemi di accedere per conto di un utente, ad esempio il client dbt, ottenendo in modo sicuro un token OAuth tramite un popup del browser da Azure AD. Dbt usa questo token per connettersi all'API SQL di Databricks, semplificando l'autenticazione e l'autorizzazione.
Creare una registrazione dell'app di Azure
- Usare il portale di Azure per accedere al tenant di Azure per l'account Azure Databricks all'indirizzo
https://portal.azure.com/<tenant-id>
. - Fare clic su Registrazioni per l'app. Se Registrazioni app non è visibile, fare clic su Altri servizi e usare la casella di testo Filtra servizi per cercare Registrazioni app.
- Fare clic su Nuova registrazione.
- Immettere un nome per l'app.
- Per URI di reindirizzamento selezionare Client pubblico/nativo (mobile e desktop) dal menu a discesa e immettere
http://localhost:8020
. - Fare clic su Registra.
- Copiare l'ID applicazione (client) e l'ID tenant. Questi valori saranno necessari in un secondo momento.
Aggiungere il profilo U2M al progetto dbt
Aggiungere il profilo U2M al profiles.yml
file nel progetto dbt.
Di seguito è riportato un file di esempio profiles.yml
con il profilo azure-oauth-u2m
U2M specificato. Specificando azure-oauth-u2m
per target
imposta il profilo U2M come profilo di esecuzione predefinito usato da 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
Verificare la configurazione dell'applicazione OAuth
Eseguire il comando per verificare che l'applicazione
dbt debug
OAuth sia stata configurata correttamente. Ad esempio:dbt debug --target azure-oauth-u2m
Viene visualizzata la pagina Autorizzazioni richieste nel browser.
Fare clic su Accetto.
Di seguito è riportato un esempio di output di un'esecuzione riuscita 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
Risorse aggiuntive
Per creare un nuovo progetto dbt Core e connettersi ad Azure Databricks usando l'autenticazione SSO, vedere Connettersi a dbt Core.