Pengaturan autentikasi untuk Driver JDBC Databricks (Simba)

Catatan

Halaman ini berlaku untuk Simba JDBC Driver (Legacy), versi di bawah versi 3. Databricks sangat merekomendasikan migrasi ke Driver JDBC Databricks untuk konektivitas JDBC. Ini termasuk peningkatan seperti dukungan untuk tampilan metrik Katalog Unity, transaksi yang mencakup beberapa perintah SQL, prosedur tersimpan, pengambilan hasil besar yang lebih cepat, dan telemetri klien bawaan.

Halaman ini menjelaskan cara mengonfigurasi pengaturan autentikasi Azure Databricks untuk Driver Databricks JDBC.

Driver Databricks JDBC mendukung jenis autentikasi Azure Databricks berikut:

Token ID Microsoft Entra

Driver ODBC dan JDBC 2.6.15 ke atas mendukung token ID Microsoft Entra untuk pengguna Azure Databricks atau perwakilan layanan ID Microsoft Entra.

Untuk membuat token akses ID Microsoft Entra, lakukan hal berikut:

Token akses ID Microsoft Entra memiliki masa pakai default sekitar satu jam. Refresh token akses secara terprogram untuk sesi yang ada tanpa memutuskan koneksi dengan menjalankan kode di Refresh token. Untuk petunjuknya, lihat Menggunakan OAuth 2.0 di Panduan Driver Databricks JDBC.

Untuk mengautentikasi menggunakan token ID Microsoft Entra, atur konfigurasi berikut.

Untuk URL koneksi JDBC dengan properti konfigurasi umum yang disematkan dan properti kredensial sensitif:

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

Untuk kode Java dengan properti konfigurasi umum dan properti kredensial sensitif yang diatur di luar URL koneksi 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);
// ...

Untuk informasi selengkapnya, lihat bagian Pass-through Token di Panduan Driver JDBC Databricks (HTML atau PDF).

Token OAuth 2.0

Driver JDBC 2.6.36 ke atas mendukung token OAuth 2.0 untuk perwakilan layanan ID Microsoft Entra. Ini juga dikenal sebagai autentikasi token pass-through OAuth 2.0.

  • Untuk membuat token OAuth 2.0 untuk autentikasi pass-through menggunakan token untuk perwakilan layanan Microsoft Entra ID, lihat Membuat token akses OAuth M2M secara manual. Catat nilai OAuth access_token dari service principal.
  • Untuk membuat prinsipal layanan terkelola Microsoft Entra ID, lihat Prinsipal layanan.

Penting

Driver JDBC 2.6.36 ke atas mendukung penggunaan rahasia OAuth Azure Databricks untuk membuat token OAuth 2.0. Rahasia ID Microsoft Entra tidak didukung.

Token OAuth 2.0 memiliki masa pakai default 1 jam. Untuk menghasilkan token OAuth 2.0 baru, ulangi proses ini.

Untuk mengautentikasi menggunakan autentikasi pass-through token OAuth 2.0, atur konfigurasi berikut.

Untuk URL koneksi JDBC dengan properti konfigurasi umum yang disematkan dan properti kredensial sensitif:

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

Untuk kode Java dengan properti konfigurasi umum dan properti kredensial sensitif yang diatur di luar URL koneksi 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);
// ...
  • Dalam URL atau kode Java sebelumnya, ganti <oauth-token> dengan token OAuth Azure Databricks. (Token ID Microsoft Entra tidak didukung untuk autentikasi pass-through token OAuth 2.0.)
  • Untuk mendapatkan nilai untuk <server-hostname> dan <http-path>, lihat Pengaturan komputasi untuk Driver JDBC Databricks (Simba).

Untuk informasi selengkapnya, lihat bagian Pass-through Token di Panduan Driver JDBC Databricks (HTML atau PDF).

Autentikasi pengguna ke mesin (U2M) OAuth

Driver JDBC 2.6.36 ke atas mendukung autentikasi pengguna-ke-mesin (U2M) OAuth untuk pengguna Azure Databricks. Ini juga dikenal sebagai autentikasi berbasis browser OAuth 2.0.

Autentikasi berbasis browser OAuth U2M atau OAuth 2.0 tidak memiliki prasyarat. Token OAuth 2.0 memiliki masa pakai default 1 jam. Autentikasi berbasis browser OAuth U2M atau OAuth 2.0 harus menyegarkan token OAuth 2.0 yang kedaluwarsa untuk Anda secara otomatis.

Catatan

Autentikasi berbasis browser OAuth U2M atau OAuth 2.0 hanya berfungsi dengan aplikasi yang berjalan secara lokal. Ini tidak berfungsi dengan aplikasi berbasis server atau berbasis cloud.

Untuk mengautentikasi menggunakan autentikasi berbasis browser OAuth user-to-machine (U2M) atau OAuth 2.0, atur konfigurasi berikut.

Untuk URL koneksi JDBC dengan properti konfigurasi umum yang disematkan dan properti kredensial sensitif:

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

Untuk kode Java dengan properti konfigurasi umum dan properti kredensial sensitif yang diatur di luar URL koneksi 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);
// ...

Untuk informasi selengkapnya, lihat bagian Menggunakan Autentikasi Berbasis Browser di Panduan Driver JDBC Databricks (HTML atau PDF).

Autentikasi pengguna-ke-mesin (U2M) OAuth Microsoft Entra ID

Driver JDBC 2.7.1 ke atas mendukung autentikasi user-to-machine (U2M) Microsoft Entra ID OAuth untuk pengguna Azure Databricks. Ini juga dikenal sebagai autentikasi berbasis browser OAuth 2.0.

Autentikasi berbasis browser OAuth U2M atau OAuth 2.0 tidak memiliki prasyarat. Token OAuth 2.0 memiliki masa pakai default 1 jam. Autentikasi berbasis browser OAuth U2M atau OAuth 2.0 harus menyegarkan token OAuth 2.0 yang kedaluwarsa untuk Anda secara otomatis.

Catatan

Autentikasi berbasis browser OAuth U2M atau OAuth 2.0 hanya berfungsi dengan aplikasi yang berjalan secara lokal. Ini tidak berfungsi dengan aplikasi berbasis server atau berbasis cloud.

Untuk mengautentikasi menggunakan Microsoft Entra ID OAuth user-to-machine (U2M), klien OAuth (aplikasi) harus terdaftar di ID Microsoft Entra, lihat Mendaftarkan aplikasi klien di ID Microsoft Entra. Kemudian atur konfigurasi berikut:

Untuk URL koneksi JDBC dengan properti konfigurasi umum yang disematkan dan properti kredensial sensitif:

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

Untuk kode Java dengan properti konfigurasi umum dan properti kredensial sensitif yang diatur di luar URL koneksi 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);
// ...

Untuk informasi selengkapnya, lihat bagian Menggunakan Autentikasi Berbasis Browser di Panduan Driver JDBC Databricks (HTML atau PDF).

Autentikasi mesin-ke-mesin (M2M) OAuth

Driver JDBC 2.6.36 ke atas mendukung autentikasi mesin-ke-mesin (M2M) OAuth untuk perwakilan layanan ID Microsoft Entra. Ini juga dikenal sebagai autentikasi kredensial klien OAuth 2.0 .

Catatan

JDBC 2.6.40.1071 mengatasi masalah pada versi-versi sebelumnya yang tidak mendukung penghubungan menggunakan M2M untuk ruang kerja private link.

Untuk mengonfigurasi autentikasi kredensial klien OAuth M2M atau OAuth 2.0, lakukan hal berikut:

  1. Buat perwakilan layanan terkelola ID Microsoft Entra lalu tetapkan ke akun dan ruang kerja Azure Databricks. Untuk melakukan ini, lihat Service principals.

  2. Buat rahasia OAuth Azure Databricks untuk perwakilan layanan. Untuk melakukan ini, lihat Membuat token akses OAuth M2M secara manual.

  3. Berikan akses perwakilan layanan ke kluster atau gudang Anda. Lihat Izin komputasi atau Mengelola gudang SQL.

Untuk mengautentikasi menggunakan autentikasi kredensial klien OAuth machine-to-machine (M2M) atau OAuth 2.0, atur konfigurasi berikut.

Untuk URL koneksi JDBC dengan properti konfigurasi umum yang disematkan dan properti kredensial sensitif:

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

Untuk kode Java dengan properti konfigurasi umum dan properti kredensial sensitif yang diatur di luar URL koneksi 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);
// ...
  • Dalam URL atau kode Java sebelumnya, ganti tempat penampung berikut:
    • Ganti <service-principal-application-id> dengan nilai ID Aplikasi (klien) perwakilan layanan.
    • Ganti <service-principal-oauth-secret> dengan rahasia Azure Databricks OAuth perwakilan layanan. (Rahasia ID Microsoft Entra tidak didukung untuk autentikasi kredensial klien OAuth M2M atau OAuth 2.0.)
    • Untuk mendapatkan nilai untuk <server-hostname> dan <http-path>, lihat Pengaturan komputasi untuk Driver JDBC Databricks (Simba).

Untuk informasi selengkapnya, lihat bagian Menggunakan Autentikasi Berbasis M2M di Panduan Driver JDBC Databricks (HTML atau PDF).

Autentikasi mesin-ke-mesin (M2M) Microsoft Entra ID OAuth

Driver JDBC 2.7.1 ke atas mendukung autentikasi Microsoft Entra ID OAuth mesin-ke-mesin (M2M) untuk prinsipal layanan Microsoft Entra ID. Ini juga dikenal sebagai autentikasi kredensial klien OAuth 2.0 .

Untuk mengonfigurasi autentikasi Entra ID OAuth M2M, lakukan hal berikut:

  1. Buat perwakilan layanan terkelola ID Microsoft Entra lalu tetapkan ke akun dan ruang kerja Azure Databricks. Untuk melakukan ini, lihat Service principals.

  2. Buat rahasia Entra ID OAuth untuk perwakilan layanan. Untuk melakukan ini, lihat Membuat token akses OAuth M2M secara manual.

  3. Berikan akses perwakilan layanan ke kluster atau gudang Anda. Lihat Izin komputasi atau Mengelola gudang SQL.

Untuk mengautentikasi menggunakan Entra ID OAuth machine-to-machine (M2M), atur konfigurasi berikut.

Untuk URL koneksi JDBC dengan properti konfigurasi umum yang disematkan dan properti kredensial sensitif:

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

Untuk kode Java dengan properti konfigurasi umum dan properti kredensial sensitif yang diatur di luar URL koneksi 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);
// ...
  • Dalam URL atau kode Java sebelumnya, ganti tempat penampung berikut:
    • Ganti <entra-id-service-principal-application-id> dengan nilai ID aplikasi perwakilan layanan di Entra.
    • Ganti <entra-id-service-principal-client-secret> dengan rahasia perwakilan layanan di Entra. Ini adalah rahasia klien yang Anda buat di Sertifikat & rahasia di Microsoft Entra ID.
    • Untuk mendapatkan nilai untuk <server-hostname> dan <http-path>, lihat Pengaturan komputasi untuk Driver JDBC Databricks (Simba).