Membahas integrasi LDAP dengan layanan email dan address book: lookup user dan alias lewat Postfix, autentikasi IMAP/POP3 di Dovecot, pengisian direktori kontak di Thunderbird dan Outlook, hingga schema extension untuk atribut email.

Pada episode 19, kalian membuat Linux mengenali user dari LDAP lewat NSS, PAM, dan SSSD. Episode 20 ini memanfaatkan directory yang sama untuk layanan komunikasi: email dan address book. LDAP adalah fondasi alami untuk ini — alamat email, alias, dan informasi kontak memang data direktori. Kalian akan melihat bagaimana Postfix memakai LDAP untuk routing dan alias, Dovecot untuk autentikasi mailbox, serta klien email untuk direktori kontak terpusat.
Postfix adalah MTA (Mail Transfer Agent) yang sangat populer di Debian/Ubuntu dan mendukung LDAP sebagai sumber lookup bawaan. Dengan LDAP, kalian bisa menghapus file alias statis dan memetakan semua data mail ke direktori terpusat.
Untuk mail server dengan banyak user, pola virtual users paling umum: alamat email dipetakan ke mailbox melalui lookup LDAP. Setiap user punya atribut mail berisi alamat utamanya, dan Postfix menanyakan LDAP saat ada surat masuk.
Contoh lookup domain virtual di /etc/postfix/ldap-virtual-domain.cf:
server_host = ldap://ldap.example.com
search_base = dc=example,dc=com
query_filter = (&(objectClass=inetOrgPerson)(mail=*@%s))
result_attribute = mailquery_filter mencari entry yang memiliki alamat pada domain yang dituju, dan result_attribute menentukan nilai yang dikembalikan. File .cf ini dirujuk dari main.cf melalui parameter seperti virtual_mailbox_domains.
Alias memetakan satu alamat ke satu atau banyak tujuan. Dengan atribut mailForwardingAddress, Postfix bisa melakukan alias expansion langsung dari LDAP:
server_host = ldap://ldap.example.com
search_base = ou=people,dc=example,dc=com
query_filter = (&(objectClass=inetOrgPerson)(mail=%s))
result_attribute = mailForwardingAddressJika entry user budi punya mailForwardingAddress: sari@example.com, surat yang ditujukan ke budi@example.com akan diteruskan ke sari@example.com. Skema ini memperbolehkan satu user memiliki banyak alias — misalnya support@ yang diteruskan ke seluruh tim.
Untuk memutuskan server mana yang menerima surat sebuah domain, Postfix juga bisa bertanya ke LDAP lewat parameter transport. Atribut seperti mailHost menentukan server tujuan. Ini berguna di lingkungan dengan beberapa server mail: satu entry menentukan lokasi fisik mailbox, sehingga routing mengikuti data direktori.
Dovecot adalah server IMAP dan POP3 yang paling umum dipasang bersama Postfix. Keunggulannya bagi integrasi LDAP: autentikasi langsung ke LDAP, tanpa menyimpan password lokal.
Konfigurasi LDAP Dovecot ada di /etc/dovecot/dovecot-ldap.conf.ext:
hosts = ldap.example.com
dn = cn=dovecot,ou=system,dc=example,dc=com
dnpass = secret
base = ou=people,dc=example,dc=com
user_filter = (&(objectClass=inetOrgPerson)(uid=%u))
pass_filter = (&(objectClass=inetOrgPerson)(uid=%u))hosts menunjuk server LDAP, user_filter dan pass_filter menentukan bagaimana Dovecot mencari user dan memvalidasi password. Bind ke akun sistem khusus (cn=dovecot) adalah praktik yang benar — jangan memakai bind anonim untuk operasi mail.
Selain autentikasi, Dovecot mengambil metadata user dari LDAP: home mailbox, UID, dan quota. Mapping dilakukan lewat atribut POSIX yang sudah kalian kenal dari episode 19, plus atribut mail seperti mailQuota untuk batas kapasitas:
user_attrs = uidNumber=uid, gidNumber=gid, \
homeDirectory=home, mailQuota=quota_ruleDengan mapping ini, satu perubahan di LDAP langsung memengaruhi mailbox user — termasuk menaikkan atau mencabut kuota tanpa menyentuh konfigurasi Dovecot per user. Ini contoh nyata mengapa directory services mengurangi beban administrasi.
Sebelum Dovecot mendominasi, Courier IMAP/POP3 juga punya dukungan LDAP lewat file /etc/courier/authldaprc. Konsepnya sama: bind ke LDAP, cari user, validasi password. Jika kalian menemukan infrastruktur lama berbasis Courier, polanya mudah dipindahkan ke Dovecot karena model datanya identik.
LDAP adalah standar de facto untuk direktori kontak perusahaan. Satu directory bisa melayani Thunderbird, Outlook, dan Apple Mail sekaligus — setiap klien hanya melakukan search ke base yang sama.
Thunderbird mendukung address book LDAP secara bawaan. Kalian cukup menambah directory baru dengan parameter server dan base:
Name: Direktori Perusahaan
Hostname: ldap.example.com
Base DN: ou=people,dc=example,dc=com
Port: 636 (LDAPS) atau 389 (StartTLS)Setelah terpasang, pencarian nama di address book akan melakukan search ke LDAP dan menampilkan hasil langsung dari directory. Mapping atribut standar digunakan: cn, mail, telephoneNumber, dan mobile.
Outlook memakai layanan GAL (Global Address List) untuk integrasi LDAP, dan Exchange mempublikasikan GAL-nya lewat protokol LDAP juga. Di sisi Apple, aplikasi Contacts dan Mail bisa memakai directory LDAP langsung — kalian cukup menunjuk ke server LDAP dan memilih base untuk pencarian. Ketiga ekosistem ini membaca atribut yang sama, jadi membangun schema yang konsisten di LDAP memberi nilai tunggal bagi semua klien.
Konsistensi atribut adalah kunci integrasi mail. Beberapa atribut standar yang dipakai ekosistem email LDAP:
| Atribut | Fungsi | Dipakai oleh |
|---|---|---|
mail | Alamat email utama | Postfix, Dovecot, klien email |
mailAlternateAddress | Alamat alternatif user | Postfix alias |
mailHost | Server tempat mailbox | Postfix routing |
mailQuota | Batas kapasitas mailbox | Dovecot quota |
mailForwardingAddress | Alamat tujuan penerusan | Postfix alias expansion |
telephoneNumber | Nomor telepon kantor | Address book |
Perhatikan pola mail vs mailAlternateAddress vs mailForwardingAddress. mail adalah alamat utama yang diterima dan dikirim. mailAlternateAddress adalah alamat tambahan milik user yang sama. mailForwardingAddress menentukan tujuan penerusan — bisa ke user lain atau ke domain eksternal.
Standar atribut di atas berasal dari schema qmail dan postfix yang bisa dimuat ke OpenLDAP. Schema ini menambahkan object class dan atribut khusus mail sehingga entry user bisa membawa seluruh data mail dalam satu record.
Contoh memuat schema postfix ke OpenLDAP:
sudo ldapadd -Y EXTERNAL -H ldapi:/// \
-f /etc/ldap/schema/postfix.schemaSetelah schema dimuat, entry user bisa memakai atribut seperti mailForwardingAddress secara langsung:
dn: uid=budi,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: qmailUser
uid: budi
cn: Budi Setiawan
mail: budi@example.com
mailAlternateAddress: budi.setiawan@example.com
mailForwardingAddress: bsetiawan@example.com
mailHost: mail.example.comUntuk kebutuhan organisasi tertentu, kalian juga bisa membuat atribut custom sendiri — misalnya mailDepartmentAlias. Aturan terbaiknya: cek dulu schema yang sudah ada sebelum membuat atribut baru, karena schema qmail dan postfix sudah mencakup hampir semua kebutuhan email standar.
Tip
Saat menambah atribut mail ke entry yang sudah ada, ingat bahwa operasi ldapmodify harus menambahkan object class baru (misalnya qmailUser) sebelum atribut yang bergantung padanya bisa disimpan. Urutan add object class lalu add attribute adalah kebiasaan yang aman.
Pada episode 20 ini, kalian mengintegrasikan LDAP ke dunia email dan kontak: lookup virtual users dan alias di Postfix, autentikasi serta quota di Dovecot, address book LDAP di Thunderbird, Outlook, dan Apple Mail, pemahaman atribut mail seperti mail, mailAlternateAddress, dan mailForwardingAddress, serta schema extensions dari qmail dan postfix.
Inti yang harus dibawa pulang:
mail adalah alamat utama — atribut lain adalah variasi dari alamat itu.cn=dovecot, cn=postfix) lebih aman daripada anonim.Di episode 21 berikutnya, kalian keluar dari layanan sistem menuju aplikasi: web application integration — bagaimana aplikasi web memakai LDAP untuk autentikasi user, dari PHP dan Python sampai Java, serta pola integrasi di Apache dan Nginx. Konsep bind DN dan atribut yang kalian pakai di sini akan berulang terus di episode itu.