Udostępnij przez


Ustawienia uwierzytelniania dla sterownika JDBC Databricks (Simba)

Uwaga

Ta strona dotyczy wersji sterownika JDBC usługi Databricks poniżej wersji 3. Aby uzyskać informacje o sterowniku JDBC usługi Databricks w wersji 3 lub nowszej, zobacz Sterownik JDBC usługi Databricks.

Na tej stronie opisano sposób konfigurowania ustawień uwierzytelniania usługi Azure Databricks dla sterownika JDBC usługi Databricks.

Sterownik JDBC usługi Databricks obsługuje następujące typy uwierzytelniania usługi Azure Databricks:

Token identyfikatora Microsoft Entra ID

Sterowniki ODBC i JDBC 2.6.15 i nowsze obsługują tokeny Microsoft Entra ID dla użytkownika Azure Databricks lub jednostki usługi Microsoft Entra ID.

Aby utworzyć token dostępu microsoft Entra ID, wykonaj następujące czynności:

Tokeny dostępu identyfikatora Entra firmy Microsoft mają domyślny okres istnienia około godziny. Odśwież token dostępu programowo dla istniejącej sesji bez przerywania połączenia, uruchamiając kod w obszarze Odśwież tokeny. Aby uzyskać instrukcje, zobacz Using OAuth 2.0 (Korzystanie z protokołu OAuth 2.0 ) w przewodniku sterownika JDBC usługi Databricks.

Aby uwierzytelnić się przy użyciu tokenu identyfikatora Entra firmy Microsoft, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia JDBC:

// ...
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", "<microsoft-entra-id-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...

Aby uzyskać więcej informacji, zobacz sekcję Przekazywanie tokenu w przewodniku sterownika JDBC usługi Databricks (HTML lub PDF).

Tokeny protokołu OAuth 2.0

Sterownik JDBC 2.6.36 lub nowszy obsługuje token OAuth 2.0 dla jednostki usługi Microsoft Entra ID. Jest to również nazywane uwierzytelnianiem przekazywaniem tokenu OAuth 2.0.

  • Aby utworzyć token OAuth 2.0 na potrzeby uwierzytelniania przekazywanego tokenu dla jednostki usługi Microsoft Entra ID, zobacz Ręczne generowanie tokenów dostępu OAuth M2M. Zanotuj wartość OAuth access_token głównej jednostki usługi.
  • Aby utworzyć zarządzaną jednostkę usługi Microsoft Entra ID, zapoznaj się z Jednostkami usługi.

Ważne

Sterownik JDBC 2.6.36 lub nowszy obsługuje używanie tajnych danych OAuth usługi Azure Databricks do tworzenia tokenów OAuth 2.0. Sekrety Microsoft Entra ID nie są obsługiwane.

Tokeny OAuth 2.0 mają domyślny okres istnienia 1 godziny. Aby wygenerować nowy token OAuth 2.0, powtórz ten proces.

Aby uwierzytelnić się przy użyciu uwierzytelniania przekazywanego tokenu OAuth 2.0, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia JDBC:

// ...
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);
// ...
  • W poprzednim adresie URL lub kodzie Java zastąp element <oauth-token> tokenem OAuth usługi Azure Databricks. (Tokeny Microsoft Entra ID nie są obsługiwane dla uwierzytelniania OAuth 2.0 do przekazu tokenu).
  • Aby uzyskać wartości dla <server-hostname> i <http-path>, zobacz Ustawienia obliczeń dla sterownika JDBC usługi Databricks (Simba).

Aby uzyskać więcej informacji, zobacz sekcję Przekazywanie tokenu w przewodniku sterownika JDBC usługi Databricks (HTML lub PDF).

Uwierzytelnianie typu użytkownik-komputer (U2M) OAuth

Sterownik JDBC w wersji 2.6.36 lub nowszej obsługuje uwierzytelnianie użytkownika-komputer OAuth (U2M) dla użytkownika usługi Azure Databricks. Jest to również nazywane uwierzytelnianiem opartym na przeglądarce OAuth 2.0.

Uwierzytelnianie oparte na przeglądarce OAuth U2M lub OAuth 2.0 nie ma wymagań wstępnych. Tokeny OAuth 2.0 mają domyślny okres istnienia 1 godziny. Uwierzytelnianie oparte na przeglądarce, takie jak OAuth U2M lub OAuth 2.0, powinno automatycznie odświeżać wygasłe tokeny OAuth 2.0.

Uwaga

Uwierzytelnianie oparte na przeglądarce OAuth U2M lub OAuth 2.0 działa tylko z aplikacjami, które działają lokalnie. Nie działa z aplikacjami opartymi na serwerze ani w chmurze.

Aby uwierzytelnić się przy użyciu uwierzytelniania OAuth na komputerze (U2M) lub uwierzytelniania opartego na przeglądarce OAuth 2.0, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia JDBC:

// ...
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);
// ...

Aby uzyskać więcej informacji, zobacz sekcję Using Browser Based Authentication (Korzystanie z uwierzytelniania opartego na przeglądarce ) w przewodniku sterowników JDBC usługi Databricks (HTML lub PDF).

Uwierzytelnianie OAuth użytkownika do maszyny (U2M) w Microsoft Entra ID

Sterownik JDBC w wersji 2.7.1 lub nowszej obsługuje uwierzytelnianie OAuth użytkownik-do-maszyny (U2M) firmy Microsoft Entra ID dla użytkownika usługi Azure Databricks. Jest to również nazywane uwierzytelnianiem opartym na przeglądarce OAuth 2.0.

Uwierzytelnianie oparte na przeglądarce OAuth U2M lub OAuth 2.0 nie ma wymagań wstępnych. Tokeny OAuth 2.0 mają domyślny okres istnienia 1 godziny. Uwierzytelnianie oparte na przeglądarce, takie jak OAuth U2M lub OAuth 2.0, powinno automatycznie odświeżać wygasłe tokeny OAuth 2.0.

Uwaga

Uwierzytelnianie oparte na przeglądarce OAuth U2M lub OAuth 2.0 działa tylko z aplikacjami, które działają lokalnie. Nie działa z aplikacjami opartymi na serwerze ani w chmurze.

Aby uwierzytelnić się przy użyciu Microsoft Entra ID OAuth od użytkownika do maszyny (U2M), aplikacja klienta OAuth musi być zarejestrowana w Microsoft Entra ID, zobacz Rejestrowanie aplikacji klienta w Microsoft Entra ID. Następnie ustaw następującą konfigurację:

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0;OIDCDiscoveryEndpoint=<endpoint>;EnableOIDCDiscovery=true

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia JDBC:

// ...
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");
p.put("OIDCDiscoveryEndpoint", "https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration");
p.put("EnableOIDCDiscovery", "true");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...

Aby uzyskać więcej informacji, zobacz sekcję Using Browser Based Authentication (Korzystanie z uwierzytelniania opartego na przeglądarce ) w przewodniku sterowników JDBC usługi Databricks (HTML lub PDF).

Uwierzytelnianie maszyny do maszyny OAuth (M2M)

Sterownik JDBC 2.6.36 lub nowszy obsługuje uwierzytelnianie maszyny do maszyny OAuth (M2M) dla jednostki usługi Microsoft Entra ID. Jest to również znane jako uwierzytelnianie za pomocą poświadczeń klienta OAuth 2.0 .

Uwaga

JDBC 2.6.40.1071 rozwiązuje problem w starszych wersjach, w których łączenie za pomocą M2M dla obszarów roboczych prywatnego łącza nie było obsługiwane.

Aby skonfigurować uwierzytelnianie poświadczeń klienta OAuth M2M lub OAuth 2.0, wykonaj następujące czynności:

  1. Utwórz jednostkę główną usługi zarządzanej Microsoft Entra ID, a następnie przypisz ją do kont i obszarów roboczych usługi Azure Databricks. Aby to zrobić, zobacz Service principals.

  2. Utwórz wpis tajny OAuth usługi Azure Databricks dla jednostki usługi. Aby to zrobić, zobacz Ręczne generowanie tokenów dostępu OAuth M2M.

  3. Nadaj głównemu elementowi usługi dostęp do klastra lub magazynu. Zobacz Uprawnienia obliczeniowe lub Zarządzanie usługą SQL Warehouse.

Aby uwierzytelnić się przy użyciu uwierzytelniania maszynowego do maszyny OAuth (M2M) lub uwierzytelniania poświadczeń klienta OAuth 2.0, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia JDBC:

// ...
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", "1");
p.put("OAuth2ClientId", "<service-principal-application-id>");
p.put("OAuth2Secret", "<service-principal-oauth-secret>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
  • W poprzednim adresie URL lub kodzie Java zastąp następujące symbole zastępcze:
    • Zastąp <service-principal-application-id> wartością Identyfikatora aplikacji (klienta) jednostki usługi.
    • Zastąp element <service-principal-oauth-secret> wpisem tajnym OAuth jednostki usługi Azure Databricks. (Hasła Microsoft Entra ID nie są obsługiwane w przypadku uwierzytelniania OAuth M2M lub OAuth 2.0 z poświadczeniami klienta).
    • Aby uzyskać wartości dla <server-hostname> i <http-path>, zobacz Ustawienia obliczeń dla sterownika JDBC usługi Databricks (Simba).

Aby uzyskać więcej informacji, zobacz sekcję Using M2M Based Authentication (Korzystanie z uwierzytelniania opartego na protokole M2M ) w przewodniku sterowników JDBC usługi Databricks (HTML lub PDF).

Uwierzytelnianie między maszynami OAuth (M2M) w usłudze Microsoft Entra ID

Sterownik JDBC w wersji 2.7.1 lub nowszej obsługuje uwierzytelnianie OAuth typu maszyna-maszyna (M2M) dla głównego obiektu usługi Microsoft Entra ID. Jest to również znane jako uwierzytelnianie za pomocą poświadczeń klienta OAuth 2.0 .

Aby skonfigurować uwierzytelnianie OAuth M2M w usłudze Entra ID, wykonaj następujące czynności:

  1. Utwórz jednostkę główną usługi zarządzanej Microsoft Entra ID, a następnie przypisz ją do kont i obszarów roboczych usługi Azure Databricks. Aby to zrobić, zobacz Service principals.

  2. Utwórz tajny klucz OAuth dla Entra ID podmiotu zabezpieczeń. Aby to zrobić, zobacz Ręczne generowanie tokenów dostępu OAuth M2M.

  3. Nadaj głównemu elementowi usługi dostęp do klastra lub magazynu. Zobacz Uprawnienia obliczeniowe lub Zarządzanie usługą SQL Warehouse.

Aby uwierzytelnić się przy użyciu Entra ID OAuth w trybie machine-to-machine (M2M), ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>;OIDCDiscoveryEndpoint=<endpoint>;EnableOIDCDiscovery=true

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia JDBC:

// ...
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", "1");
p.put("OAuth2ClientId", "<entra-id-service-principal-application-id>");
p.put("OAuth2Secret", "<entra-id-service-principal-client-secret>");
p.put("OIDCDiscoveryEndpoint", "https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration");
p.put("EnableOIDCDiscovery", "true");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
  • W poprzednim adresie URL lub kodzie Java zastąp następujące symbole zastępcze:
    • Zastąp <entra-id-service-principal-application-id> wartością identyfikatora aplikacji głównego obiektu usługi w Entra.
    • Zastąp ciąg <entra-id-service-principal-client-secret> wpisem tajnym jednostki usługi w usłudze Entra. Jest to tajny klucz klienta, który tworzysz w sekcji Certyfikaty i tajne klucze w Microsoft Entra ID.
    • Aby uzyskać wartości dla <server-hostname> i <http-path>, zobacz Ustawienia obliczeń dla sterownika JDBC usługi Databricks (Simba).