Belajar LDAP - Overlays & Extended Features
Series/Belajar LDAP/Episode 11
Episode 11 of 31

Belajar LDAP - Overlays & Extended Features

Memperluas kemampuan slapd dengan overlays: konsep modul berlapis, memberOf untuk keanggotaan grup otomatis, ppolicy untuk kebijakan password, syncprov untuk replikasi, dan overlay pendukung seperti refint, unique, dan auditlog.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 10 kalian mengatur siapa boleh mengakses apa lewat ACL. Episode 11 memperluas server dengan fungsi-fungsi modular bernama overlay: dari pelacakan keanggotaan grup otomatis, penegakan kebijakan password, sampai pondasi replikasi. Overlay inilah yang mengubah slapd polos menjadi direktori enterprise.

Apa itu Overlay

Overlay adalah modul fungsional yang "menumpang" pada sebuah database backend. Setiap request (search, add, modify, delete) melewati rantai overlay yang terdaftar sebelum sampai ke backend, dan setiap overlay bisa membaca, mengubah, atau memicu aksi tambahan. Ada dua langkah mengaktifkan overlay: memuat modul lalu membuat entry overlay pada database tujuan.

Memuat Modul Overlay

Modul dimuat lewat olcModuleLoad pada entry module di cn=config:

LinuxMemuat modul overlay
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: memberof
-
add: olcModuleLoad
olcModuleLoad: ppolicy
-
add: olcModuleLoad
olcModuleLoad: refint
-
add: olcModuleLoad
olcModuleLoad: unique

Modul auditlog dan syncprov dimuat dengan pola yang sama persis.

Di Debian/Ubuntu, modul overlay berada di /usr/lib/ldap/ (contoh memberof.la), sehingga cukup menulis nama modulnya. Setelah LDIF diterapkan dengan ldapmodify terhadap cn=config, server memuat modul dan kalian bisa mengaktifkan overlay-nya.

Overlay memberOf

memberOf memelihara atribut memberOf pada setiap user secara otomatis — begitu user ditambahkan ke member sebuah grup, atribut memberOf di entry user ikut terisi. Aktifkan:

LinuxMengaktifkan memberof
dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcMemberOf
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

olcMemberOfRefInt: TRUE menautkan pembersihan referensi ke overlay refint — saat user dihapus dari grup, memberOf di entry user ikut dihapus. Gunakan memberOf untuk menjawab pertanyaan seperti "grup apa saja yang berisi Budi?":

Membaca memberOf
ldapsearch -x -D "cn=admin,dc=example,dc=com" -W -b "uid=budi,ou=People,dc=example,dc=com" -s base "(objectClass=*)" memberOf

Overlay ppolicy

ppolicy menegakkan kebijakan password: panjang minimum, riwayat, kualitas, dan kuncian akun. Aktifkan overlay lalu tunjuk policy default:

LinuxMengaktifkan ppolicy
dn: olcOverlay={0}ppolicy,olcDatabase={1}mdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=default,ou=Policies,dc=example,dc=com
olcPPolicyHashCleartext: FALSE
olcPPolicyUseLockout: TRUE

Pastikan schema ppolicy sudah dimuat — di Debian/Ubuntu filenya ada di /etc/ldap/schema/ppolicy.schema. Lalu buat entry policy-nya:

policy-default.ldif
dn: cn=default,ou=Policies,dc=example,dc=com
objectClass: pwdPolicy
objectClass: person
cn: default
sn: Default password policy
pwdAttribute: userPassword
pwdMinLength: 12
pwdMaxAge: 7776000
pwdInHistory: 5
pwdCheckQuality: 2
pwdMaxFailure: 3
pwdLockout: TRUE
pwdLockoutDuration: 300
pwdGraceAuthNLimit: 2

Beberapa atribut kunci:

AtributArti
pwdMinLengthPanjang minimal password
pwdMaxAgeUmur maksimal password dalam detik (90 hari = 7776000)
pwdInHistoryJumlah password lama yang dilarang dipakai ulang
pwdCheckQualityTingkat pemeriksaan kualitas, dari 0 sampai 2
pwdMaxFailureBatas percobaan login gagal
pwdLockoutAktifkan kuncian akun setelah pwdMaxFailure
pwdLockoutDurationDurasi kuncian dalam detik
pwdGraceAuthNLimitJumlah login masa tenggang setelah kadaluarsa

Perincian lengkap ppolicy — termasuk hashing dan validasi eksternal — akan dibahas di episode 12.

Overlay syncprov

syncprov mengubah server menjadi provider replikasi: ia melacak perubahan (contextCSN) dan menyediakan sinkronisasi bagi consumer. Konfigurasi pada sisi provider:

LinuxMengaktifkan syncprov pada provider
dn: olcOverlay={0}syncprov,olcDatabase={1}mdb,cn=config
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpCheckpoint: 100 10
olcSpSessionlog: 100

olcSpCheckpoint menyuruh provider menulis penanda sinkronisasi setiap 100 operasi atau 10 menit; olcSpSessionlog mengatur ukuran log sesi untuk delta-sync. Sisi consumer memakai direktif syncrepl pada database-nya sendiri — dibahas lengkap di episode replikasi. Kombinasi syncprov dengan accesslog memungkinkan delta-sync: consumer hanya menerima perubahan, bukan seluruh isi database.

Overlay Pendukung Lainnya

Selain tiga besar di atas, ada overlay yang melengkapi direktori production:

OverlayFungsi utama
refintMenjaga referensi DN tetap konsisten saat entry dihapus atau di-rename
uniqueMemaksa atribut tertentu unik dalam scope tertentu
constraintMembatasi nilai atribut pada pola atau daftar yang diizinkan
auditlogMenulis log perubahan ke file LDIF untuk audit
accesslogMencatat perubahan untuk delta-sync dan history
dynlistMembuat list dinamis dari query lewat memberURL
valsortMengurutkan nilai atribut multi-valued secara otomatis

unique misalnya mencegah dua user memakai uidNumber yang sama — masalah yang kita singgung di episode 7:

LinuxMemaksa uidNumber unik
dn: olcOverlay={0}unique,olcDatabase={1}mdb,cn=config
objectClass: olcUniqueConfig
olcOverlay: unique
olcUniqueURI: ldap:///?uidNumber?sub?(objectClass=posixAccount)

auditlog menulis setiap modifikasi ke file yang bisa direview:

LinuxMengaktifkan auditlog
dn: olcOverlay={0}auditlog,olcDatabase={1}mdb,cn=config
objectClass: olcAuditLogConfig
olcOverlay: auditlog
olcAuditlogFile: /var/log/ldap/audit.log

Konfigurasi Overlay

Beberapa hal yang wajib diperhatikan:

  • Urutan overlay itu penting — request diproses berurutan. memberOf sebaiknya aktif sebelum refint sehingga pembersihan referensi bisa mengikuti; overlay yang memvalidasi seperti constraint biasanya diletakkan lebih awal agar request yang tidak valid ditolak sebelum diproses lebih jauh.
  • Setiap overlay menambah overhead — satu-dua overlay nyaris tak terasa, tetapi tumpukan belasan overlay memperlambat setiap request. Aktifkan hanya yang benar-benar dipakai.
  • Overlay yang menulis log (auditlog, accesslog) bisa memenuhi disk — atur rotasi log sejak awal.
  • Beri nomor urut pada entry overlay (misal olcOverlay diawali indeks 0, 1, 2, dan seterusnya) agar urutannya jelas saat dibaca slapcat.

Tip

Setelah mengubah konfigurasi cn=config, cek konsistensinya dengan slapcat -n 0 -l /tmp/config.ldif dan pastikan service restart-nya bersih via systemctl status slapd. Kesalahan pada entry overlay umumnya baru muncul saat restart, bukan saat LDIF diterapkan.

Penutup

Episode 11 memperkenalkan arsitektur overlay OpenLDAP: konsep modul berlapis, langkah memuat modul dengan olcModuleLoad, tiga overlay utama memberOf, ppolicy, dan syncprov, tujuh overlay pendukung seperti refint, unique, dan auditlog, serta disiplin urutan dan overhead saat mengonfigurasinya.

Inti yang harus dibawa pulang:

  • Overlay dipasang dua langkah: muat modul, lalu buat entry overlay di database.
  • memberOf otomatis memelihara keanggotaan; pasangkan dengan refint.
  • ppolicy adalah gerbang kebijakan password, syncprov pondasi replikasi.
  • Urutan overlay menentukan hasil — dan setiap overlay menambah biaya pemrosesan.

Di episode 12 berikutnya, kita menyelami kebijakan password secara utuh: atribut-atribut policy, hashing SSHA sampai Argon2, validasi eksternal, dan bagaimana menguji lockout, expiration, serta grace login dengan benar.

Belajar LDAP - Overlays & Extended Features | Belajar LDAP