Permisi gan, Numpang nanya cara penggunaan LDAP di PHP. Jadi gini ceritanya, saya punya server Active Directory dan mempunyai aplikasi yang dibuat dengan PHP. Yang ingin saya tanyakan bagaimana cara nya aplikasi PHP ini menggunakan halam login dengan user yang ada di server AD sy. Saya sudah coba google, dan coba" dari salah satu blog Code: http://mazhters.blogspot.com/2011/05/bermain-ldap-dengan-php.html Untuk Loginya sudah berhasil, terkendala nya untuk menampilkan informasi user yang ada di server AD, seperti display name, office dan email Seperti capture salah satu user di sever AD Berikut code php ldap yang saya buat dari salah satu blog : Code:
Output php dari browser Jika user Login berhasil muncul pesan error ; Jika user login gagal, pesan error : Kalau di lihat pesan error di atas, secara umum koneksi ke server sudah berhasil atau script koding yang ldap_connect sudah OK Yang saya bingung kenapa ldap_bind(): ldap_search(): ldap_get_entries() ini error ya ? Mohon solusinya ya gan. Makasih sebelumnya LDAP (Lightweight Directory Access Protocol) adalah salah satu protokol direktori yang sampai saat ini masih bertahan dan populer digunakan di kelas menengah dan enterprise. Beberapa produk yang bisa anda pakai misalnya Microsoft Active Directory, Fedora Directory Access, Mandriva Directory Access, SUSE Linux Enterprise, OpenLDAP dan TurnkeyLinux LDAP. Disini saya hanya akan membahas bagaimana cara koneksi ke protokol LDAP dari PHP. Beberapa hal yang harus anda perhatikan adalah: 1. pastikan extension php_ldap (php_ldap.dll untuk Windows dan php_ldap.so untuk Linux) sudah tersedia dan sudah di enable dalam file php.ini LDAP(Lightweight Directory Access Protocol) adalah sebuah protokol aplikasi yang digunakan untuk melakukan query atau memodifikasi data layanan direktori dan diimplementasikan dalam IP(Internet Protocol). fungsi utamanya adalah untuk menyimpan semua informasi user, komputer dan sebagainya dalam satu domain. sebagai contoh jika satu komputer terdaftar pada satu domain, maka komputer tersebut dapat disetting sedemikian rupa agar dapat menggunakan user yang tersimpan pada Active Directory untuk login.Jika aplikasi kita dapat terkoneksi dengan Active Directory, maka tidak menuntut kemungkinan kita bisa menggunakan semua user di dalamnya untuk autentikasi login. kelebihannya adalah jika ada suatu kebutuhan dimana user ingin semua orang yang menggunakan aplikasi kita didapatkan dari server Active Directory, kita tidak perlu mendaftarkan ulang semua user tersebut. System ini lebih dikenal dengan Single Sign On. Ok, sekian dulu penjelasan mengenai LDAP. sekarang pertanyaannya adalah apakah PHP mampu melakukan koneksi ke server LDAP/Active Directory? jawabannya tentu saja adalah "YA" didalam ekstensi bawaan dari PHP sudah disediakan library untuk koneksi ke server Active Directory. berikut cara untuk mengaktifkannya :
Setelah web server direstart, maka kita siap untuk membuat aplikasi yang terkoneksi ke server Active Directory. Sekarang mari kita buat file baru misalnya testldap.php, lalu tulis kode dibawah ini : <? // user dan password user yang sudah terdaftar di server LDAP $ldaprdn = 'uname'; $ldappass = 'mypassword'; // membuat koneksi ke server active directory $ldapconn = ldap_connect("192.168.123.123"); // jika gagal akan mereturn value FALSE if ($ldapconn) { // menyatukan aplikasi dengan server LDAP $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); // verify binding if ($ldapbind) { echo "Koneksi berhasil.."; } else { echo ldap_error($ldapbind); } }else{ echo ldap_error($ldapconn); } ?>Catatan : alamat IP server bisa diganti dengan nama domain server, contoh : contohdomain.com Jika berhasil, maka saat aplikasi dijalankan akan menampilkan pesan "User terdaftar" dan jika gagal maka akan menampilkan pesan kemungkinan error dari library LDAP. Jika user tidak dikenali maka biasanya akan mengeluarkan pesan error "Invalid Credential". Jika sudah yakin bahwa user telah benar-benar terdaftar pada server akan tetapi masih mengeluarkan error "Invalid Credential" coba pastikan kembali format login user yang digunakan pada server. ada 3 tipe format login yang sampai sekarang sering digunakan, yaitu dengan contoh bahwa domain yang sedang kita gunakan adalah contohdomain.com:
Selamat mencoba :) |