Contents
![](http://www.ilmuzimbra.com/wp-content/uploads/2023/02/openldap-e15.png)
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“
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-2-1024x496.png)
Akan muncul pop-up window untuk memilih mode autentikasi, dalam kasus ini kita pilih “External LDAP“, lalu klik next
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-3-1024x512.png)
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 |
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-4-1024x513.png)
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
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-5-1024x515.png)
Di bagian Authentication Config Summary, sediakan satu user untuk keperluan testing.
Sebagai contoh, saya memiliki satu user dalam organizationalUnit people dengan username arfan.
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-6-1024x517.png)
Klik “Test” untuk menjalankan test, kemudian klik next
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-8-1024x519.png)
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-7-1024x515.png)
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.
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-11-1024x325.png)
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-12-1024x380.png)
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.
![](https://www.ilmuzimbra.com/wp-content/uploads/2023/02/auth-13-1024x403.png)
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.