Tutorial PHP - Membuat Login dengan Menggunakan LDAP


Active Directory berdasarkan Wikipedia adalah layanan direktori yang dikembangkan oleh Microsoft untuk jaringan domain Windows. Jika anda membuat program PHP dan data login dari user menggunakan data dari Active Directory, maka anda dapat menggunakan fitur LDAP (Lightweight Directory Access Protocol) yang sudah disediakan oleh PHP. Berikut ini adalah cara untuk menggunakan fitur LDAP tersebut.


#MENGAFTIFKAN MODUL LDAP PADA XAMPP

Langkah pertama yang harus dilakukan adalah mengaktifkan terlebih dahulu modul LDAP. Jika anda menggunakan XAMPP, edit file php.ini yang terdapat pada direktori xampp/php. Pada file php.ini tersebut gunakan fitur pencarian dan lakukan pencarian kata ldap.

Nantinya anda akan menemukan baris ";extension=ldap" dan hapus karakter ";" pada baris tersebut. Simpan kembali file php.ini tersebut dan kemudian silahkan lakukan restart service Apache pada XAMPP untuk mengaktifkan modul LDAP ini.



#PENGGUNAAN KODE PADA PHP

Setelah selesai mengaktifkan modul LDAP, langkah selanjutnya adalah melakukan penulisan kode untuk melakukan pengecekan login yang terdapat pada Active Directory. Berikut ini adalah contoh baris kode yang saya buat

        $ldap['user'] = "USERNAME";
        $ldap['pass'] = "PASSWORD";
        $ldap['host']   = "HOST" ; // Contoh 192.168.110.103
        $ldap['port']   = 389;
        
        $ldap['conn'] = ldap_connect( $ldap['host'], $ldap['port'] )
            or die("Could not connect to {$ldap['host']}" );
        
        ldap_set_option($ldap['conn'], LDAP_OPT_PROTOCOL_VERSION, 3);
        $ldap['bind'] = @ldap_bind($ldap['conn'], $ldap['user'], $ldap['pass']);
        ldap_close( $ldap['conn'] );

        if( !$ldap['bind'] )
        {
             echo "Username / Password Salah";
        } else {
             echo "Login sukses";
       }

Baris kode di atas akan melakukan pengecekan login username dan password dengan data yang terdapat pada active directory. Berikut ini adalah penjelasan per baris dari kode yang saya buat

$ldap['user'] = "USERNAME"; 
Kode ini digunakan untuk menampung username yang diinput oleh user

$ldap['pass'] = "PASSWORD";
Kode ini digunakan untuk menampung password yang diinput oleh user

$ldap['host']   = "HOST" ; // Contoh 192.168.110.103
Kode ini diisi dengan alamat server yang dapat berupa IP Address seperti contoh di atas

$ldap['port']   = 389;
Kode ini menunjukkan port yang dipakai


$ldap['conn'] = ldap_connect( $ldap['host'], $ldap['port'] )
     or die("Could not connect to {$ldap['host']}" );
Kode ini digunakan untuk melaukan sambungan dengan active directory pada server dan port tujuan


ldap_set_option($ldap['conn'], LDAP_OPT_PROTOCOL_VERSION, 3);
Kode ini untuk mengubah versi protokol dan biasanya digunakan protokol versi 3. Bisa diabaikan jika tidak terdapat error protokol saat melakukan sambungan ke active directory

$ldap['bind'] = @ldap_bind($ldap['conn'], $ldap['user'], $ldap['pass']);
Kode ini untuk melakukan validasi username da password active directory. Perhatikan karakter "@" saat melakukan ldap_bind.

ldap_close( $ldap['conn'] );
Kode ini untuk menutup koneksi ke active directory


if( !$ldap['bind'] )
{
      echo "Username / Password Salah";
} else {
      echo "Login sukses";
}
Dan kode bagian terakhir ini untuk melakukan pengecekan apakah username dan password yang diinput oleh user sudah benar sesuai dengan username dan password pada active directory.


Contoh kode di atas hanyalah contoh sederhana bagaimana cara membuat login dengan ldap pada active directory. Untuk penerapan sesungguhnya, anda dapat menyesuaikan sendiri kode-kode yang dibutuhkan pada program yang anda buat. Demikian penjelasan saya pada artikel Tutorial PHP - Membuat Login dengan Menggunakan LDAP. Jika ada pertanyaan silahkan gunakan kolom komentar di bawah. Semoga artikel ini dapat mudah dimengerti dan dipahami. Terima kasih.

Tutorial PHP - Membuat Login dengan Menggunakan LDAP Tutorial PHP - Membuat Login dengan Menggunakan LDAP Reviewed by Donny Winarto on August 03, 2019 Rating: 5

2 comments:

  1. Terima kasih ini sangat bermanfaat. Mau tanya jika saya lihat tutor lainnya kenapa ribet sekali yah sampai ada dn, filter dll

    ReplyDelete

Powered by Blogger.