Contents
Requirements
- OpenLDAP yang telah terkonfigurasi dan berjalan
- Zimbra server
- Memiliki setidaknya satu user dan satu organizationalUnit di OpenLDAP untuk keperluan testing
Integrasi
Akses ke halaman zimbra admin console kalian, lalu masuk ke menu “Configure” -> “Domains“
Klik kanan pada nama server, lalu pilih “Configure Authentication“
Akan muncul pop-up window untuk memilih mode autentikasi, dalam kasus ini kita pilih “External LDAP“, lalu klik next
Masukkan address dan port ldap anda.
Jika anda menggunakan ldaps, centang box “Use SSL” dan “Enable StartTLS“
Pada kolom LDAP filter isikan seperti berikut
1 2 3 4 5 |
(&(uid=%u)(objectClass=organizationalPerson)) # User memiliki atribut uid pada eksternal direktori yang sama dengan user portion dari akun zimbra user dan memiliki objectClass organizationalPerson |
Untuk bagian LDAP search base, isikan seperti berikut. Jangan lupa untuk menyesuaikan ou dan dc dengan organizationalUnit dan domainComponent anda
1 2 3 |
ou=people,dc=testserv,dc=loc |
Selanjutnya pada bagian LDAP Bind, jika server ldap anda mengizinkan anonymous query anda boleh melawati proses ini dengan langsung klik next.
Centang box “Use DN/Password to bind to external server“
Pada kolom Bind DN isikan dengan admin, jangan lupa untuk menyesuaikan dc-nya dengan milik anda
1 2 3 |
cn=admin,dc=testserv,dc=loc |
Masukkan password admin lalu klik next
Di bagian Authentication Config Summary, sediakan satu user untuk keperluan testing.
Sebagai contoh, saya memiliki satu user dalam organizationalUnit people dengan username arfan.
Klik “Test” untuk menjalankan test, kemudian klik next
Klik Finish.
Jika sebelumnya anda memiliki beberapa user di zimbra, user-user tersebut tidak akan dapat masuk ke akun mereka jika akun mereka belum tersedia di openLDAP.
Untuk mengatasi permasalahan tersebut, kita perlu meng-export terlebih dahulu existing user di zimbra ke openLDAP.
Export user Zimbra ke openLDAP
Seperti yang terlihat pada gambar, saya memiliki 3 akun user yang belum tersedia di openLDAP.
Kita dump terlebih dahulu semua user yang terdapat di zimbra. Jalankan perintah ini di Zimbra
1 2 3 |
zmprov -l gaa | sed -e 's/@.*$//' > /tmp/list-exist-user-zimbra.txt |
Kemudian edit file /tmp/list-exist-user-zimbra.txt, lalu hilangkan semua nama akun system dari list sehingga hanya menyisakan akun-akun admin.
Selanjutnya, jalankan perintah ini untuk mendapatkan beberapa konfigurasi zimbra ldap
1 2 3 |
zmlocalconfig -s | grep -i zimbra.ldap |
Dari output perintah di atas, catat value dari variabel zimbra_ldap_password dan zimbra_ldap_userdn
Kemudian jalankan perintah ini untuk mendapatkan organizationalUnit ldap zimbra
1 2 3 |
ldapsearch -H <zimbra-ldap-address> -x -LLL -b "" namingContexts -w <zimbra-ldap-password> -D <zimbra-ldap-userdn> "(objectClass=simpleSecurityObject)" dn | grep -e '\sou=people' |
Selanjutnya kita dump semua user zimbra beserta data-data per usernya ke file /tmp/dump-existing-user-zimbra.ldif
1 2 3 |
ldapsearch -H <zimbra-ldap-address> -x -LLL -b <organizationalUnit> -D <zimbra-ldap-userdn> -w <zimbra-ldap-password> '(&(objectClass=zimbraAccount)(uid=%s))' -f /tmp/list-exist-user-zimbra.txt sn cn userPassword objectClass uid mail telephoneNumber description displayName givenName initials | grep -wv -e "objectClass: zimbraAccount" -e "objectClass: amavisAccount" > /tmp/dump-existing-user-zimbra.ldif |
CATATAN: Proses ini akan mengubah password untuk semua akun menjadi satu password yang sama
Jalankan perintah ini untuk generate password hash yang baru
1 2 3 |
slappasswd -h '{SSHA}' |
Catat output dari hasil perintah di atas, dan jalankan perintah ini untuk merubah password field semua user pada file /tmp/dump-existing-user-zimbra.ldif
1 2 3 |
sed -e 's@^userPassword:.*$@userPassword: <hash-password>@' -e '/^\s\w\+$/d' -i /tmp/dump-existing-user-zimbra.ldif |
Login ke halaman phpldapadmin kalian, kemudian klik import dan pilih file /tmp/dump-existing-user-zimbra.ldif.
Jika tidak ada error yang muncul, maka proses import telah sukses dilakukan.
Terima kasih telah membaca artikel kami. Nantikan artikel-artikel menarik selanjutnya dari ilmuzimbra.