Autentikasi LDAP memastikan hanya pengguna dengan kredensial yang valid yang dapat terhubung ke Kyuubi Server, memulai sesi Spark, dan menjalankan kueri SQL. Topik ini menjelaskan cara mengonfigurasi autentikasi LDAP untuk Kyuubi Gateway.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kyuubi Gateway dan Token. Untuk informasi lebih lanjut, lihat Manage Kyuubi Gateway.
Salah satu versi engine berikut:
esr-4.x: esr-4.3.0 atau yang lebih baru
esr-3.x: esr-3.3.0 atau yang lebih baru
esr-2.x: esr-2.7.0 atau yang lebih baru
(Opsional) Jika Anda ingin menggunakan layanan OpenLDAP dari kluster EMR on ECS: kluster EMR on ECS dengan OpenLDAP yang telah diaktifkan dan pengguna yang telah ditambahkan. Untuk informasi lebih lanjut, lihat Create a cluster dan OpenLDAP user management.
Langkah 1: Periksa konektivitas jaringan
Kyuubi Gateway harus dapat menjangkau layanan LDAP melalui jaringan. Verifikasi konektivitas jaringan antara EMR Serverless Spark dan Virtual Private Cloud (VPC) Anda sebelum melanjutkan. Untuk informasi lebih lanjut, lihat Network connectivity between EMR Serverless Spark and other VPCs.
Jika Kyuubi Gateway tidak dapat menjangkau layanan LDAP, autentikasi akan gagal saat koneksi meskipun semua parameter telah dikonfigurasi dengan benar. Selesaikan masalah jaringan apa pun sebelum melanjutkan ke Langkah 2.
Langkah 2: Konfigurasi Kyuubi Gateway
Hentikan sesi aktif pada Kyuubi Gateway Anda.
Buka editor Kyuubi Gateway dan pilih koneksi jaringan Anda dari dropdown Network Connectivity.
Tambahkan parameter berikut ke Kyuubi Configuration:
kyuubi.authentication LDAP kyuubi.authentication.ldap.url ldap://<ldap_url>:<ldap_port>/ kyuubi.authentication.ldap.baseDN <ldap_base_dn> kyuubi.authentication.ldap.userDNPattern <ldap_user_pattern> kyuubi.authentication.ldap.binddn <ldap_bind_dn> kyuubi.authentication.ldap.bindpw <ldap_bind_pwd>Mulai ulang Kyuubi Gateway agar perubahan diterapkan.
Referensi parameter
Ganti nilai placeholder berdasarkan layanan LDAP Anda. Contoh berikut menggunakan konfigurasi OpenLDAP.
| Parameter | Deskripsi | Contoh (OpenLDAP) |
|---|---|---|
kyuubi.authentication | Jenis autentikasi. Atur ke LDAP untuk mengaktifkan autentikasi LDAP. | LDAP |
kyuubi.authentication.ldap.url | Alamat koneksi layanan LDAP. Format: ldap://<host>:<port>/. Port default untuk OpenLDAP adalah 10389. | ldap://master-1-1.c-xxxxxxxxxx.cn-hangzhou.emr.aliyuncs.com:10389/ |
kyuubi.authentication.ldap.baseDN | Base DN untuk pencarian LDAP. | o=emr |
kyuubi.authentication.ldap.userDNPattern | Pola yang digunakan untuk mengonversi username login menjadi DN lengkap. Gunakan %s sebagai placeholder untuk username. Saat pengguna test login, nilai ini diselesaikan menjadi uid=test,ou=people,o=emr. | uid=%s,ou=people,o=emr |
kyuubi.authentication.ldap.binddn | DN yang digunakan untuk bind ke layanan LDAP guna melakukan pencarian. | uid=admin,o=emr |
kyuubi.authentication.ldap.bindpw | Password untuk bind DN. Untuk OpenLDAP pada EMR on ECS, temukan nilai admin_pwd dalam konfigurasi layanan OpenLDAP. | — |
Langkah 3: Terhubung dengan kredensial LDAP
Sebelum terhubung, kumpulkan nilai berikut dari halaman manajemen Kyuubi Gateway:
| Placeholder | Lokasi penemuannya | Catatan |
|---|---|---|
<endpoint> | Overview — Endpoint (public) atau Endpoint (internal) | Titik akhir internal hanya berfungsi dalam VPC yang sama |
<port> | — | 443 untuk titik akhir publik; 80 untuk titik akhir internal |
<token> | Token Management | — |
<username> dan <password> | Kredensial layanan LDAP Anda | Untuk OpenLDAP pada EMR on ECS: kredensial dari halaman User Management |
Opsi 1: kyuubi-beeline
Kredensial inline — sertakan username dan password langsung dalam perintah:
kyuubi-beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' \
-n <username> -p <password>Prompt interaktif — hilangkan password agar dimasukkan secara interaktif (karakter tidak ditampilkan):
kyuubi-beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' \
-n <username> -pGunakan metode prompt interaktif untuk menghindari tereksposnya password dalam riwayat shell atau log.
Opsi 2: JDBC URL
Untuk aplikasi Java atau klien apa pun yang menerima string koneksi JDBC:
jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<username>;password=<password>Pemecahan Masalah
Koneksi gagal segera setelah konfigurasi
Periksa hal berikut:
Jaringan: Pastikan Kyuubi Gateway dapat menjangkau host dan port LDAP. Jalankan uji konektivitas dari dalam VPC yang sama jika memungkinkan.
Format URL LDAP: Verifikasi bahwa URL menggunakan format yang benar:
ldap://<host>:<port>/.Bind DN dan password: Verifikasi bahwa
kyuubi.authentication.ldap.binddndankyuubi.authentication.ldap.bindpwsesuai dengan akun LDAP yang valid.
Autentikasi gagal meskipun kredensial benar
Ketidaksesuaian userDNPattern: DN yang diselesaikan harus sesuai persis dengan format yang digunakan dalam direktori LDAP Anda. Untuk OpenLDAP, konfirmasi pola tersebut terhadap entri pengguna aktual menggunakan tool browser LDAP.
Cakupan baseDN: Jika entri pengguna berada di luar
baseDNyang dikonfigurasi, pencarian tidak akan menemukan pengguna tersebut. SesuaikanbaseDNke entri tingkat lebih tinggi jika diperlukan.
Error token atau endpoint
Jika URL koneksi ditolak, verifikasi bahwa:
Token belum kedaluwarsa atau dicabut (tab Token Management).
Port sesuai dengan jenis endpoint:
443untuk publik,80untuk internal.