Mengenal perangkat klien OpenLDAP: ldapsearch, ldapadd, ldapmodify, ldapdelete, ldappasswd, ldapwhoami, dan ldapcompare beserta opsi umumnya, melakukan pencarian pertama, dan memahami format LDIF untuk pertukaran data direktori.

Di episode 5 kalian berhasil menginstall slapd dan membangun struktur dasar domain dc=example,dc=com di server. Server sekarang hidup dan mendengarkan di port 389, tetapi belum ada yang berinteraksi dengannya. Episode 6 ini memindahkan fokus ke sisi klien: kalian akan mengenal perangkat tools LDAP satu per satu, mempelajari opsi-opsi yang dipakai bersama, melakukan pencarian pertama baik anonim maupun terautentikasi, dan memahami LDIF — bahasa pertukaran data yang akan menemani kalian di sisa series ini.
Semua operasi LDAP yang diperkenalkan di episode 2 punya tool-nya masing-masing. Paket ldap-utils menyediakan semuanya sekaligus:
| Tool | Operasi | Fungsi utama |
|---|---|---|
ldapsearch | Search | Membaca dan mencari entries |
ldapadd | Add | Menambah entry baru |
ldapmodify | Modify | Mengubah atribut entry |
ldapdelete | Delete | Menghapus entry |
ldappasswd | Password Modify | Mengganti password |
ldapwhoami | Who Am I | Menampilkan identitas hasil bind |
ldapcompare | Compare | Membandingkan nilai sebuah atribut |
Catatan penting: ldapadd sebenarnya adalah alias dari ldapmodify -a. Sedangkan operasi ModifyDN tidak ditangani tool bernama ldapmodifydn, melainkan ldapmodrdn — kalian akan memakainya di episode 8.
Semua tool di atas berbagi kumpulan opsi yang hampir identik. Hafalkan satu, sisanya langsung bisa:
| Opsi | Fungsi | Contoh pemakaian |
|---|---|---|
-H | URI server LDAP | -H ldap://localhost |
-D | Bind DN, identitas yang dipakai | -D "cn=admin,dc=example,dc=com" |
-w | Password langsung di perintah | -w rahasia123 |
-W | Prompt password interaktif | -W |
-x | Autentikasi simple | -x |
-b | Base DN pencarian | -b dc=example,dc=com |
-s | Scope pencarian | -s sub |
-f | Baca masukan dari file | -f entries.ldif |
Pola dasarnya selalu sama: tool -x -H server -D binddn -b base lalu opsi khusus tool. Untuk urusan password, biasakan -W daripada -w — dengan -W password diminta interaktif sehingga tidak mengendap di shell history. Detail lengkap tiap tool bisa dibaca lewat ldapsearch -h atau halaman man.
Note
Tanpa argumen -f, tool seperti ldapadd dan ldapmodify membaca masukan dari stdin. Kebiasaan memakai file membuat operasi bisa diulang dan direview sebelum dijalankan — pola yang akan kalian pelajari lebih dalam di episode 7.
Mari mulai dengan ldapsearch, tool yang paling sering dipakai. Perintah berikut mencari semua entries di dalam base dc=example,dc=com:
ldapsearch -x -H ldap://localhost -b dc=example,dc=com "(objectClass=*)"Tanpa -D, pencarian dilakukan sebagai bind anonim. Frasa (objectClass=*) adalah filter yang mencocokkan semua entries — ingat ldapsearch wajib diberi filter di akhir perintah. Hasilnya menampilkan DN dan semua atribut dari tiap entry yang ditemukan, satu per satu.
Kebanyakan direktori production membatasi apa yang bisa dilihat anonim. Pencarian sebagai admin menambahkan -D dan -W:
ldapsearch -x -H ldap://localhost -D "cn=admin,dc=example,dc=com" -W -b dc=example,dc=com "(objectClass=*)"Setelah memasukkan password, hasilnya akan sama dengan pencarian anonim tadi — selama server memberi hak baca yang sama pada anonim. Bila aturan ACL (episode 10) berbeda, hasilnya pun akan berbeda.
Entry khusus bernama Root DSE terletak di DN kosong dan berisi kemampuan server, bukan data direktori. Mencarinya memakai base kosong dengan scope base:
ldapsearch -x -H ldap://localhost -b "" -s base "+"Argumen + meminta atribut operasional. Dari sini kalian bisa melihat supportedControl, supportedExtension, supportedSASLMechanisms, dan supportedLDAPVersion — inilah cara cepat memastikan fitur apa saja yang didukung server kalian sebelum mulai mengkonfigurasi sesuatu yang belum ada.
LDIF (LDAP Data Interchange Format) adalah representasi teks dari entries LDAP, dipakai sebagai format masukan ldapadd dan ldapmodify serta keluaran ldapsearch. Satu entry minimal terdiri dari DN lalu pasangan atribut dan nilai:
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
dc: example
o: Example IncAturan-aturan penting LDIF:
dn: diikuti distinguished name entry.atribut: nilai. Satu atribut boleh diulang untuk nilai jamak, seperti objectClass di atas.# entry contoh untuk user budi
dn: uid=budi,ou=People,dc=example,dc=com
description: User contoh yang deskripsinya cukup panjang
sehingga terpaksa dilanjutkan ke baris berikutnya
userCertificate:: Q29udGVudCBCZXJ2YXM=Aturan dn: sebagai baris pertama, pemisah entry berupa baris kosong, dan penulisan atribut: nilai inilah yang akan kalian pakai terus menerus di episode 7 dan 8.
Episode 6 melengkapi kalian dengan perangkat kerja di sisi klien: fungsi tiap tool ldap-utils, opsi bersama -H, -D, -w, -W, -x, -b, -s, dan -f, cara melakukan pencarian anonim, terautentikasi, dan terhadap Root DSE, serta aturan format LDIF dari struktur entry sampai base64.
Inti yang harus dibawa pulang:
ldapsearch wajib menerima filter — tanpanya, perintah akan keliru.-W daripada -w agar password tidak terpapar di shell history.dn:, lalu atribut: nilai, pisahkan entry dengan baris kosong.Di episode 7 berikutnya, kalian akan memakai semua ini untuk benar-benar mengisi direktori: membuat struktur organisasi, menambahkan user dan grup, hingga impor batch — dari direktori kosong menjadi direktori yang mulai bernyawa.