Condividi tramite


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

  1. Usare il portale di Azure per accedere al tenant di Azure per l'account Azure Databricks all'indirizzo https://portal.azure.com/<tenant-id>.
  2. 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.
  3. Fare clic su Nuova registrazione.
  4. Immettere un nome per l'app.
  5. Per URI di reindirizzamento selezionare Client pubblico/nativo (mobile e desktop) dal menu a discesa e immettere http://localhost:8020.
  6. Fare clic su Registra.
  7. Copia l'ID Application (client). Questo valore sarà necessario in un secondo momento.

Generare un segreto client per la registrazione app Azure

  1. Nella portale di Azure selezionare la registrazione dell'app creata nel passaggio precedente.
  2. Fare clic su Certificati e segreti e quindi su Nuovo segreto client.
  3. Immettere una descrizione e quindi fare clic su Aggiungi.
  4. 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

  1. Nell'area di lavoro di Azure Databricks fare clic sul nome utente in alto a destra e quindi su Impostazioni.
  2. Fare clic sulla scheda Identità e accesso.
  3. Accanto a Entità servizio fare clic su Gestisci.
  4. Fare clic su Aggiungi entità servizio e quindi su ID client.
  5. Per ApplicationId immettere l'ID applicazione (client) copiato in precedenza.
  6. Per Nome visualizzato immettere un nome logico per l'entità servizio e quindi fare clic su Aggiungi.

Aggiungere il profilo M2M al progetto dbt

  1. 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>
    
  2. Aggiungere il profilo M2M al profiles.yml file nel progetto dbt.

    Di seguito è riportato un file di esempio profiles.yml con il profilo azure-oauth-m2m M2M specificato. Specificando azure-oauth-m2m per target 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

  1. Nella barra laterale fare clic su SQL Warehouse, fare clic su SQL Warehouse e quindi su Autorizzazioni.
  2. 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

  1. Usare il portale di Azure per accedere al tenant di Azure per l'account Azure Databricks all'indirizzo https://portal.azure.com/<tenant-id>.
  2. 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.
  3. Fare clic su Nuova registrazione.
  4. Immettere un nome per l'app.
  5. Per URI di reindirizzamento selezionare Client pubblico/nativo (mobile e desktop) dal menu a discesa e immettere http://localhost:8020.
  6. Fare clic su Registra.
  7. 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

  1. 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.

  2. 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.