Pengaturan autentikasi untuk Driver Databricks JDBC

Driver Databricks JDBC mendukung beberapa metode autentikasi tergantung pada kasus penggunaan Anda. Halaman ini menjelaskan cara mengonfigurasi setiap metode dan mencantumkan properti koneksi yang diperlukan.

Untuk mengonfigurasi autentikasi untuk Driver Databricks JDBC, gunakan salah satu metode berikut:

Token penerusan OAuth 2.0

Driver JDBC menerima token OAuth di propertinya Auth_AccessToken. Anda dapat meneruskan token OAuth Azure Databricks secara langsung, atau JSON Web Token (JWT) dari penyedia identitas eksternal. Jika Anda meneruskan token IdP eksternal, Azure Databricks secara otomatis menukarnya dengan token Azure Databricks menggunakan federasi token.

Dalam contoh berikut, ganti tempat penampung berikut:

Properti yang diperlukan adalah:

  • AuthMech diatur ke 11 (autentikasi OAuth 2.0)
  • id-ID: Auth_Flow diatur ke 0 (mode token pass-through)
  • Auth_AccessToken diatur ke token OAuth Azure Databricks atau IdP JWT eksternal

Lihat Properti autentikasi.

Untuk URL koneksi JDBC:

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

Dalam kode Java:

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

Federasi token dengan idP eksternal

Jika Anda mengautentikasi dengan token dari penyedia identitas eksternal seperti Okta, ID Microsoft Entra, Keycloak, atau IdP yang mematuhi OIDC, Azure Databricks melakukan pertukaran token secara otomatis. Konfigurasi JDBC sama dengan pass-through token. Teruskan token IdP di Auth_AccessToken dan driver akan menangani sisanya.

Sebelum menggunakan federasi token, Anda harus:

  1. Buat kebijakan federasi di akun Azure Databricks Anda yang mempercayai IdP eksternal. Kebijakan federasi menentukan URL penerbit, nilai audiens yang diharapkan, dan klaim JWT yang digunakan untuk memetakan ke pengguna Azure Databricks. Lihat Mengautentikasi akses ke Azure Databricks menggunakan federasi token OAuth.
  2. Verifikasi bahwa pengguna Azure Databricks yang cocok ada. Email pengguna atau pengidentifikasi lain harus cocok dengan subject_claim nilai di JWT.
  3. Verifikasi bahwa titik akhir penemuan OIDC IdP dapat dijangkau secara publik sehingga Azure Databricks dapat mengambil kunci penandatanganan untuk memverifikasi token.

Autentikasi pengguna ke mesin (U2M) OAuth

Autentikasi OAuth U2M memungkinkan Anda masuk ke Azure Databricks melalui browser. Driver membuka jendela browser, Anda mengautentikasi, dan driver menerima token OAuth. Driver menggunakan ID databricks-sql-jdbc klien OAuth bawaan.

Jenis autentikasi ini tidak memiliki prasyarat. Token memiliki masa pakai default satu jam dan refresh secara otomatis saat kedaluwarsa.

Nota

OAuth U2M hanya berfungsi dengan aplikasi yang dijalankan secara lokal. Ini tidak berfungsi dengan aplikasi berbasis server atau berbasis cloud.

Dalam contoh berikut, ganti tempat penampung berikut:

Properti yang diperlukan adalah:

  • AuthMech diatur ke 11 (autentikasi OAuth 2.0)
  • Auth_Flow diatur ke 2 (mode berbasis browser U2M)
  • TokenCachePassPhrase atur ke frase sandi yang digunakan untuk mengenkripsi kredensial OAuth U2M cache Anda. Ini mencegah autentikasi berbasis browser berulang. Untuk memilih keluar dari penyimpanan sementara token, atur EnableTokenCache ke 0.

Lihat Properti autentikasi.

Dalam URL koneksi JDBC:

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

Dalam kode Java:

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

Autentikasi OAuth untuk mesin-ke-mesin (M2M)

Driver JDBC mendukung autentikasi mesin-ke-mesin (M2M) OAuth menggunakan salah satu prinsipal atau identitas berikut. Lihat Mengotorisasi akses perwakilan layanan ke Azure Databricks dengan OAuth.

M2M menggunakan prinsipal layanan yang dikelola Databricks

Untuk mengonfigurasi autentikasi menggunakan service principal yang dikelola oleh Databricks:

  1. Buat perwakilan layanan terkelola Databricks dan tetapkan ke akun dan ruang kerja Databricks.

  2. Buat rahasia Databricks OAuth untuk perwakilan layanan. Lihat Membuat token akses OAuth M2M secara manual.

  3. Berikan izin akses ke kluster dan gudang SQL.

  4. Tambahkan properti berikut ke URL koneksi JDBC atau objek java.util.Properties yang sudah ada:

    • AuthMech diatur ke 11 (autentikasi OAuth 2.0)
    • Auth_Flow diatur ke 1 (mode kredensial klien M2M)
    • OAuth2ClientID diatur ke nilai ID Aplikasi (klien) perwakilan layanan
    • OAuth2Secret diatur ke rahasia OAuth Databricks perwakilan layanan

    Lihat Properti autentikasi.

M2M menggunakan perwakilan layanan terkelola Azure

Untuk mengonfigurasi otentikasi menggunakan perwakilan layanan terkelola Azure:

  1. Buat rahasia Databricks OAuth untuk perwakilan layanan. Lihat Membuat token akses OAuth M2M secara manual.

  2. Berikan izin akses ke kluster dan gudang SQL.

  3. Tambahkan properti berikut ke URL koneksi JDBC atau objek java.util.Properties yang sudah ada:

    • AuthMech diatur ke 11 (autentikasi OAuth 2.0)
    • Auth_Flow diatur ke 1 (mode kredensial klien M2M)
    • OAuth2ClientID diatur ke nilai ID Aplikasi (klien) perwakilan layanan
    • AzureTenantID diatur ke ID tenant Azure yang ditemukan pada Azure Active Directory
    • OAuth2Secret diatur ke rahasia OAuth Databricks perwakilan layanan

    Lihat Properti autentikasi.

M2M menggunakan identitas terkelola Azure

Untuk mengonfigurasi autentikasi menggunakan identitas terkelola Azure:

  1. Mengonfigurasi identitas terkelola untuk sumber daya Azure Anda.

  2. Berikan izin akses ke kluster dan gudang SQL.

  3. Tambahkan properti berikut ke URL koneksi JDBC atau objek java.util.Properties yang sudah ada:

    • AuthMech diatur ke 11 (autentikasi OAuth 2.0)
    • Auth_Flow disetel ke 3 (mode identitas terkelola)
    • OAuth2ClientID diatur ke ID Klien identitas terkelola. Ini diperlukan hanya jika Anda menggunakan identitas terkelola yang ditetapkan pengguna.
    • Azure_workspace_resource_id tetapkan ke ID Sumber Daya Azure ruang kerja Databricks Anda

    Lihat Properti autentikasi.

Token akses pribadi Databricks

Nota

Token akses pribadi adalah yang terbaik untuk skenario pengujian. Azure Databricks merekomendasikan jenis autentikasi yang lebih aman untuk skenario produksi.

Untuk membuat token akses pribadi Databricks, ikuti langkah-langkah dalam Membuat token akses pribadi untuk pengguna ruang kerja.

Dalam contoh berikut, ganti tempat penampung berikut:

Properti yang diperlukan adalah:

  • AuthMech disetel ke 3 (autentikasi token)
  • UID diatur ke string literal token
  • PWD atau password atur ke nilai token akses pribadi Databricks Anda

Lihat Properti autentikasi.

Dalam URL koneksi JDBC:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>

Dalam kode Java:

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