Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Je nach Anwendungsfall unterstützt der Databricks JDBC Driver mehrere Authentifizierungsmethoden. Auf dieser Seite wird beschrieben, wie Sie jede Methode konfigurieren und die erforderlichen Verbindungseigenschaften auflisten.
Verwenden Sie eine der folgenden Methoden, um die Authentifizierung für den Databricks JDBC-Treiber zu konfigurieren:
- OAuth 2.0-Tokendurchlauf (einschließlich Tokenverbund mit externen Identitätsanbietern)
- OAuth Benutzer-zu-Maschine-Authentifizierung (U2M)
- OAuth-M2M (Machine-to-Machine)-Authentifizierung
- Databricks persönliches Zugriffstoken
OAuth 2.0-Tokenweiterleitung
Der JDBC-Treiber akzeptiert OAuth-Token in der Auth_AccessToken-Eigenschaft. Sie können entweder ein Azure Databricks OAuth-Token direkt oder ein JSON-Webtoken (JWT) von einem externen Identitätsanbieter übergeben. Wenn Sie ein externes IdP-Token übergeben, tauscht Azure Databricks es automatisch mithilfe des Tokenverbunds für ein Azure Databricks-Token aus.
Ersetzen Sie in den folgenden Beispielen die folgenden Platzhalter:
-
<oauth-token>mit einem Azure Databricks OAuth 2.0-Token oder einem externen IdP JWT. - Um die Werte für
<server-hostname>und<http-path>zu erhalten, lesen Sie Konfigurieren einer Verbindung mit Databricks mithilfe des Databricks JDBC-Treibers.
Die erforderlichen Eigenschaften sind:
-
AuthMechauf11(OAuth 2.0-Authentifizierung) eingestellt -
Auth_Flowfestgelegt auf0(Token-Pass-Through-Modus) -
Auth_AccessTokenauf ein Azure Databricks OAuth-Token oder ein externes IdP JWT festgelegt
Siehe Authentifizierungseigenschaften.
Für eine JDBC-Verbindungs-URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
In Java-Code:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<oauth-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
Tokenverbund mit einem externen Identitätsanbieter
Wenn Sie sich mit einem Token von einem externen Identitätsanbieter wie Okta, Microsoft Entra ID, Keycloak oder einem beliebigen OIDC-kompatiblen IdP authentifizieren, führt Azure Databricks den Tokenaustausch automatisch aus. Die JDBC-Konfiguration ist identisch mit Token-Pass-Through. Übergeben Sie das IdP-Token, und der Treiber verarbeitet den Rest.
Bevor Sie den Tokenverbund verwenden, müssen Sie Folgendes ausführen:
- Erstellen Sie eine Verbundrichtlinie in Ihrem Azure Databricks-Konto, das dem externen IDP vertraut. Eine Verbundrichtlinie gibt die Aussteller-URL, die erwarteten Zielgruppenwerte und den JWT-Anspruch an, der verwendet wird, um einem Azure Databricks-Benutzer zuzuordnen. Siehe Authentifizieren des Zugriffs auf Azure Databricks mithilfe des OAuth-Tokenverbunds.
- Überprüfen Sie, ob ein übereinstimmenden Azure Databricks-Benutzer vorhanden ist. Die E-Mail- oder andere ID des Benutzers muss mit dem
subject_claimWert im JWT übereinstimmen. - Stellen Sie sicher, dass der OIDC-Ermittlungsendpunkt des IdP öffentlich erreichbar ist, damit Azure Databricks Signierschlüssel abrufen kann, um das Token zu überprüfen.
OAuth-Benutzer-zu-Computer-Authentifizierung (U2M)
Mit der OAuth U2M-Authentifizierung können Sie sich über einen Browser bei Azure Databricks anmelden. Der Treiber öffnet ein Browserfenster, Sie authentifizieren sich, und der Treiber empfängt ein OAuth-Token. Der Treiber verwendet die integrierte OAuth-Client-ID databricks-sql-jdbc.
Dieser Authentifizierungstyp hat keine Voraussetzungen. Token verfügen über eine Standardlebensdauer von einer Stunde und werden automatisch aktualisiert, wenn sie ablaufen.
Hinweis
OAuth U2M funktioniert nur mit lokal ausgeführten Anwendungen. Es funktioniert nicht mit serverbasierten oder cloudbasierten Anwendungen.
Ersetzen Sie in den folgenden Beispielen die folgenden Platzhalter:
-
<passphrase>mit einer Passphrase Ihrer Wahl. Der Treiber verwendet diesen Schlüssel für die Aktualisierungstokenverschlüsselung. - Um die Werte für
<server-hostname>und<http-path>zu erhalten, siehe Konfigurieren einer Verbindung mit Databricks mithilfe des Databricks JDBC-Treibers.
Die erforderlichen Eigenschaften sind:
-
AuthMechauf11(OAuth 2.0-Authentifizierung) festgelegt -
Auth_Flowauf2(browserbasierter U2M-Modus) festgelegt -
TokenCachePassPhraseist auf die Passphrase eingestellt, die zum Verschlüsseln Ihrer zwischengespeicherten OAuth U2M-Anmeldeinformationen verwendet wird. Dadurch werden wiederholte browserbasierte Authentifizierungen verhindert. Um das Zwischenspeichern von Token zu deaktivieren, legen Sie diesenEnableTokenCacheWert auf0.
Siehe Authentifizierungseigenschaften.
In einer JDBC-Verbindungs-URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
In Java-Code:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2");
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
OAuth-Computer-zu-Computer-Authentifizierung (M2M)
Der JDBC-Treiber unterstützt die OAuth-Machine-to-Machine-Authentifizierung (M2M) mithilfe eines der folgenden Prinzipalen oder Identitäten. Siehe Autorisieren des Dienstprinzipalzugriffs auf Azure Databricks mit OAuth.
- Databricks-Dienstprinzipal
- Ein verwalteter Azure-Dienstprinzipal
- Eine von Azure verwaltete Identität (vom System zugewiesen oder vom Benutzer zugewiesen)
M2M mithilfe von verwaltetem Databricks-Dienstprinzipal
So konfigurieren Sie die Authentifizierung mit einem von Databricks verwalteten Dienstprinzipal:
Erstellen Sie einen verwalteten Databricks-Dienstprinzipal, und weisen Sie diesen Databricks-Konten und Arbeitsbereichen zu.
Erstellen Sie einen OAuth-Schlüssel für Databricks für den Dienstprinzipal. Siehe manuelles Generieren von OAuth M2M-Zugriffstoken.
Gewähren sie Zugriffsberechtigungen für Cluster und SQL-Lagerhäuser.
Fügen Sie die folgenden Eigenschaften zu Ihrer vorhandenen JDBC-Verbindungs-URL oder Ihrem
java.util.Properties-Objekt hinzu.-
AuthMechauf11(OAuth 2.0-Authentifizierung) gesetzt -
Auth_Flowauf1festgelegt (M2M-Clientanmeldeinformationsmodus) -
OAuth2ClientIDauf den Anwendungs-ID (Client-ID)-Wert des Dienstprinzipals festgelegt -
OAuth2Secretauf das Databricks-OAuth-Geheimnis des Dienstprinzipals festgelegt
-
M2M mit azure managed service principal
So konfigurieren Sie die Authentifizierung mit einem Azure Managed Service Principal:
Erstellen Sie einen OAuth-Schlüssel für Databricks für den Dienstprinzipal. Siehe manuelles Generieren von OAuth M2M-Zugriffstoken.
Gewähren sie Zugriffsberechtigungen für Cluster und SQL-Lagerhäuser.
Fügen Sie die folgenden Eigenschaften zu Ihrer vorhandenen JDBC-Verbindungs-URL oder Ihrem
java.util.Properties-Objekt hinzu.-
AuthMechauf11(OAuth 2.0-Authentifizierung) festgelegt -
Auth_Flowauf1(M2M-Clientanmeldeinformationsmodus) festgelegt -
OAuth2ClientIDauf den Anwendungs-(Client)-ID-Wert des Dienstprinzipals festgelegt -
AzureTenantIDauf die Azure-Mandanten-ID festgelegt, die in Azure Active Directory gefunden wurde -
OAuth2Secretauf den Databricks-OAuth-Schlüssel des Dienstprinzipals festgelegt
-
M2M mit verwalteten Azure-Identitäten
So konfigurieren Sie die Authentifizierung mithilfe von azure verwalteten Identitäten:
Konfigurieren Sie verwaltete Identitäten für Ihre Azure-Ressourcen.
Gewähren sie Zugriffsberechtigungen für Cluster und SQL-Lagerhäuser.
Fügen Sie die folgenden Eigenschaften zu Ihrer vorhandenen JDBC-Verbindungs-URL oder Ihrem
java.util.Properties-Objekt hinzu.-
AuthMechauf11(OAuth 2.0-Authentifizierung) festgelegt -
Auth_Flowauf3(verwalteten Identitätsmodus) festgelegt -
OAuth2ClientIDauf die Client-ID der verwalteten Identität festgelegt. Dies ist nur erforderlich, wenn Sie eine vom Benutzer zugewiesene verwaltete Identität verwenden. -
Azure_workspace_resource_idauf die Azure-Ressourcen-ID Ihres Databricks-Arbeitsbereichs festlegen
-
persönliches Databricks-Zugriffstoken
Hinweis
Persönliche Zugriffstoken eignen sich am besten zum Testen von Szenarien. Azure Databricks empfiehlt sicherere Authentifizierungstypen für Produktionsszenarien.
Führen Sie zum Erstellen eines persönlichen Databricks-Zugriffstokens die Schritte unter Erstellen von persönlichen Zugriffstoken für Arbeitsbereichsbenutzer aus.
Ersetzen Sie in den folgenden Beispielen die folgenden Platzhalter:
-
<personal-access-token>mit dem Databricks-Persönlicher-Zugriffstoken für den Benutzer des Arbeitsbereichs. - Informationen zum Abrufen der Werte für
<server-hostname>und<http-path>finden Sie unter Konfigurieren einer Verbindung mit Databricks mithilfe des Databricks JDBC-Treibers.
Die erforderlichen Eigenschaften sind:
-
AuthMechauf3(Tokenauthentifizierung) festgelegt -
UIDwird auf die Literalzeichenfolgetokenfestgelegt -
PWDoderpasswordlegen Sie den Wert ihres persönlichen Zugriffstokens für Databricks fest.
Siehe Authentifizierungseigenschaften.
In einer JDBC-Verbindungs-URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>
Im Java-Code:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...