Freigeben über


Konfigurieren der Azure Databricks-Anmeldung von DBT Core mit Microsoft Entra ID

Wichtig

Dieses Feature befindet sich in der Public Preview.

In diesem Artikel wird beschrieben, wie Sie die Azure Databricks-Anmeldung von DBT Core mit Microsoft Entra ID konfigurieren. Nachdem Sie diese einmalige Konfiguration als Azure Databricks-Kontoadministrator abgeschlossen haben, können Benutzer Azure Databricks mithilfe dem einmaligen Anmelden (SSO) mit dbt Core verbinden.

Zusätzlich zur Verwendung von Microsoft Entra ID können Sie Databricks M2M OAuth verwenden, um es in DBT Core zu integrieren. Weitere Informationen unter Aktivieren oder Deaktivieren von OAuth-Partneranwendungen.

Voraussetzungen

Bevor Sie die Schritte in diesem Artikel ausführen, müssen Sie:

  • Zugriff auf eine lokale dbt Core-Umgebung haben
  • Den Server-Hostnamen und den HTTP-Pfad für ein SQL-Warehouse in Ihrem Azure Databricks-Arbeitsbereich abrufen
  • Ein Azure Databricks-Kontoadministrator sein
  • Über die Berechtigung zum Erstellen einer Azure-App-Registrierung im Azure-Mandanten für Ihr Azure Databricks-Konto verfügen.

Konfigurieren der Computer-zu-Computer-Authentifizierung (M2M) für dbt Core

In diesem Abschnitt wird beschrieben, wie Sie die Computer-zu-Computer-Authentifizierung (M2M) für Azure Databricks und dbt Core konfigurieren. Der M2M-Workflow von OAuth ermöglicht automatisierte Prozesse wie die CI/CD-Integration für den sicheren Zugriff auf Ressourcen ohne menschliches Eingreifen. Der dbt-Client wird als Dienstprinzipal ausgeführt, ein OAuth-Token von Azure AD mithilfe des Dienstprinzipals abgerufen und verwendet dieses Token, um eine Verbindung mit der Databricks SQL-API herzustellen.

Erstellen einer Azure App-Registrierung

  1. Verwenden Sie das Azure-Portal, um sich unter https://portal.azure.com/<tenant-id> beim Azure-Mandanten für Ihr Azure Databricks-Konto anzumelden.
  2. Klicken Sie auf App-Registrierungen. Wenn App-Registrierungen nicht sichtbar ist, klicken Sie auf Weitere Dienste, und suchen Sie im Textfeld Dienste filtern nach App-Registrierungen.
  3. Klicken Sie auf neue Registrierung.
  4. Geben Sie einen Namen für die App ein.
  5. Wählen Sie für Umleitungs-URIden Öffentlichen Client/nativen (Mobilgeräte und Desktop) aus dem Dropdownmenü aus, und geben Sie http://localhost:8020 ein.
  6. Klicken Sie auf Registrieren.
  7. Kopieren Sie die Anwendungs- (Client-)ID. Sie benötigen diesen Wert später noch.

Generieren eines geheimen Clientschlüssels für Ihre Azure App-Registrierung

  1. Wählen Sie im Azure-Portal die App-Registrierung aus, die Sie im vorherigen Schritt erstellt haben.
  2. Klicken Sie auf Zertifikate und Geheimnisse und klicken Sie dann auf Neuer geheimer Clientschlüssel.
  3. Geben Sie eine Beschreibung ein und klicken Sie dann auf Hinzufügen.
  4. Kopieren Sie den Geheimniswert. Sie benötigen diesen Wert später und Sie können erst nach der Erstellung des geheimen Schlüssels darauf zugreifen.

Hinzufügen des Microsoft Entra ID-Dienstprinzipals zu Ihrem Arbeitsbereich

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich oben rechts auf Ihren Benutzernamen und dann auf Einstellungen.
  2. Klicken Sie auf die Registerkarte Identität und Zugriff.
  3. Klicken Sie neben Dienstprinzipale auf Verwalten.
  4. Klicken Sie auf Dienstprinzipal hinzufügen und dann auf Client-ID.
  5. Geben Sie für ApplicationIddie Anwendungs-ID (Client-ID ) ein, die Sie zuvor kopiert haben.
  6. Geben Sie für den Anzeigenameneinen logischen Namen für Den Dienstprinzipal ein, und klicken Sie dann auf Hinzufügen.

Hinzufügen des M2M-Profils zu Ihrem dbt-Projekt

  1. Legen Sie die Anwendungs-ID (Client-ID) und den geheimen Clientschlüssel fest, den Sie zuvor als Umgebungsvariablen kopiert haben. Databricks empfiehlt nicht, vertrauliche Informationen wie beispielsweise geheime Daten direkt unter profiles.yml zu speichern.

    ~ export DATABRICKS_CLIENT_ID=<client-id>
    ~ export DATABRICKS_CLIENT_SECRET=<client-secret>
    
  2. Fügen Sie das M2M-Profil der profiles.yml Datei in Ihrem dbt-Projekt hinzu.

    Nachfolgend sehen Sie eine Beispieldatei profiles.yml mit dem angegebenen M2M-Profil azure-oauth-m2m. Festlegen azure-oauth-m2m des target M2M-Profils als Standardausführungsprofil, das von dbt verwendet wird.

    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
    

Autorisieren Sie Ihren Dienstprinzipal für den Zugriff auf ein SQL-Warehouse

  1. Klicken Sie in der Randleiste auf SQL-Warehouses, klicken Sie auf Ihr SQL-Warehouse, und klicken Sie dann auf Berechtigungen.
  2. Wählen Sie neben dem zuvor in diesem Artikel erstellten Dienstprinzipal im Dropdownmenü die Option KANN VERWENDEN aus.

Überprüfen der Einstellung der OAuth-Anwendung

Führen Sie den dbt debug Befehl aus, um zu überprüfen, ob Ihre OAuth-Anwendung ordnungsgemäß konfiguriert wurde. Beispiel:

dbt debug --target azure-oauth-m2m

Im Folgenden sehen Sie ein Beispiel für eine erfolgreiche dbt debug Ausführung:

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

Konfigurieren der Benutzer-zu-Computer-Authentifizierung (U2M) für dbt Core

In diesem Abschnitt wird beschrieben, wie Sie die Benutzer-zu-Computer-Authentifizierung mit Azure Databricks und dbt Core konfigurieren. Der U2M-Workflow von OAuth ermöglicht den Systemzugriff im Namen eines Benutzers wie der dbt-Client, indem ein OAuth-Token über ein Browserpopup von Azure AD sicher abgerufen wird. Dbt verwendet dieses Token, um eine Verbindung mit der Databricks-SQL-API herzustellen und die Authentifizierung und Autorisierung zu vereinfachen.

Erstellen einer Azure App-Registrierung

  1. Verwenden Sie das Azure-Portal, um sich unter https://portal.azure.com/<tenant-id> beim Azure-Mandanten für Ihr Azure Databricks-Konto anzumelden.
  2. Klicken Sie auf App-Registrierungen. Wenn App-Registrierungen nicht sichtbar ist, klicken Sie auf Weitere Dienste, und suchen Sie im Textfeld Dienste filtern nach App-Registrierungen.
  3. Klicken Sie auf neue Registrierung.
  4. Geben Sie einen Namen für die App ein.
  5. Wählen Sie für Umleitungs-URIden Öffentlichen Client/nativen (Mobilgeräte und Desktop) aus dem Dropdownmenü aus, und geben Sie http://localhost:8020 ein.
  6. Klicken Sie auf Registrieren.
  7. Kopieren Sie die Anwendungs-ID (Client-ID) und die Mandanten-ID. Sie benötigen diese Werte später noch.

Hinzufügen des U2M-Profils zu Ihrem dbt-Projekt

Fügen Sie das U2M-Profil der profiles.yml Datei in Ihrem dbt-Projekt hinzu.

Nachfolgend sehen Sie eine Beispieldatei profiles.yml mit dem angegebenen U2M-Profil azure-oauth-u2m. Angabe azure-oauth-u2m für target das U2M-Profil als Standardausführungsprofil, das von dbt verwendet wird.

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

Überprüfen der Einstellung der OAuth-Anwendung

  1. Führen Sie den dbt debug Befehl aus, um zu überprüfen, ob Ihre OAuth-Anwendung ordnungsgemäß konfiguriert wurde. Beispiel:

    dbt debug --target azure-oauth-u2m
    

    Die angeforderte Seite „Berechtigungen“ wird in Ihrem Browser geöffnet.

  2. Klicken Sie auf Annehmen.

Im Folgenden sehen Sie ein Beispiel für eine erfolgreiche dbt debug Ausführung:

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

Zusätzliche Ressourcen

Informationen zum Erstellen eines neuen dbt Core-Projekts und Herstellen einer Verbindung mit Azure Databricks mithilfe der SSO-Authentifizierung finden Sie unter Mit dbt Core verbinden.