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
- Verwenden Sie das Azure-Portal, um sich unter
https://portal.azure.com/<tenant-id>
beim Azure-Mandanten für Ihr Azure Databricks-Konto anzumelden. - 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.
- Klicken Sie auf neue Registrierung.
- Geben Sie einen Namen für die App ein.
- 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. - Klicken Sie auf Registrieren.
- 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
- Wählen Sie im Azure-Portal die App-Registrierung aus, die Sie im vorherigen Schritt erstellt haben.
- Klicken Sie auf Zertifikate und Geheimnisse und klicken Sie dann auf Neuer geheimer Clientschlüssel.
- Geben Sie eine Beschreibung ein und klicken Sie dann auf Hinzufügen.
- 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
- Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich oben rechts auf Ihren Benutzernamen und dann auf Einstellungen.
- Klicken Sie auf die Registerkarte Identität und Zugriff.
- Klicken Sie neben Dienstprinzipale auf Verwalten.
- Klicken Sie auf Dienstprinzipal hinzufügen und dann auf Client-ID.
- Geben Sie für ApplicationIddie Anwendungs-ID (Client-ID ) ein, die Sie zuvor kopiert haben.
- 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
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>
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-Profilazure-oauth-m2m
. Festlegenazure-oauth-m2m
destarget
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
- Klicken Sie in der Randleiste auf SQL-Warehouses, klicken Sie auf Ihr SQL-Warehouse, und klicken Sie dann auf Berechtigungen.
- 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
- Verwenden Sie das Azure-Portal, um sich unter
https://portal.azure.com/<tenant-id>
beim Azure-Mandanten für Ihr Azure Databricks-Konto anzumelden. - 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.
- Klicken Sie auf neue Registrierung.
- Geben Sie einen Namen für die App ein.
- 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. - Klicken Sie auf Registrieren.
- 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
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.
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.