LDAP SIngle Sign On

Embed Size (px)

Citation preview

LAPORAN UAS NETWORK ADMINISTRATOR SINGLE SIGN ON

KELOMPOK 5: 1. I GST. PUTU SUWIARTA AQUARIAWAN 2. I.B. PUTU ANANTA WIJAYA 3. EKA RIAWAN 4. ANAK AGUNG GEDE PARASARA 0608605042 0708605018 0708605031 0708605068

PS. TEKNIK INFORMATIKA JURUSAN ILMU KOMPUTER FAKULTAS MIPA UNIVERSITAS UDAYANA 2010

1. Single Sign On (SSO) a. Pengertian Single Sign On (SSO) adalah sebuah sistem yang memfasilitasi penanganan user account untuk beberapa server dengan hanya menggunakan satu username dan password saja. Sistem ini memiliki beberapa keuntungan, antara lain : 1. User tidak perlu mengingat banyak username dan password. 2. Kemudahan pemrosesan data. Jika setiap server memiliki data user masing-masing, maka pemrosesan data user (penambahan, pengurangan, perubahan) harus dilakukan pada setiap server yang ada. Sedangkan dengan menggunakan SSO, cukup hanya melakukan 1 kali pemrosesan. Dua hal diatas jelas menyatakan bahwa penggunaan SSO meningkatkan kepraktisan, Namun di sisi lain, kepraktisan tersebut menimbulkan suatu kelemahan dalam hal keamanan. Jika password system administrator diketahui oleh orang yang tidak berhak, maka orang tersebut dapat melakukan perubahan terhadap semua data yang ada di dalamnya. b. Konsep Kerja 1. Authentication a. User and Password Authetication Melakukan pengecekan terhadap username dan password pada saat login pertama kali b. Generating and Retrieving Token Identity User mendapat serpeti tiket dari sistem setelah berhasil login. 1 User kemungkinan hanya dapat masuk ke beberapa sistem saja tergantung dari hak akses yang dimiliki oleh user tersebut. 2. Authorization a. Group Authorization Setelah melakukan pengecekan terhadap hak akses dari user tersebut, lalu hak akses tersebut dinyatakan dalam grup dan dalam grup tersebut memiliki hak akses apa saja b. Group Permission disini dicek halaman apa saja yg bisa diakses user yang logged-in. setelah bisa mengakses (view), user dapat melakukan apa saja terhadap halaman tersebut. kalau bisa, nanti akan ada tombol-tombol untuk tiap aksi yang muncul. tapi kalau tidak bisa, biasanya di halaman itu cuma ada tulisan-tulisan saja untuk dibaca. kalau hak view pun tidak bisa, biasanya, menu untuk mengakses halaman itu jg di hidden.

2. LDAP (Lightweight Directory Access Protocol) LDAP adalah suatu bentuk protokol client-server yang digunakan untuk mengakses suatu directory service. Pada tahap awalnya, LDAP digunakan sebagai suatu front-end bagi X.500, tetapi juga dapat digunakan bersama directory server yang stand-alone dan juga yang lainnya. LDAP memungkinkan kita untuk mengembangkan kemampuan kita yang dapat digunakan untuk mencari suatu organisasi, mencari suatu individu dan juga mencari sumber daya yang lainnya misalnya file maupun alatdevice didalam suatu jaringan/network. Adapun pengertian jaringan/network dalam hal ini adalah bias internet ataupun juga dalam suatu intranet dala kampus atau perusahaan, dan ini dimungkinkan baik kita mengetahui atau tidak mengetahui mengenai domain name-nya, berapa IP addressnya atau informasi mengenai geografisnya. Adapun suatu direktori LDAP data didistribusikan kedalam banyak server-server didalam jaringan/network dan kemudian dapat direplikasikan dan dilakukan sinkronisasi secara regular. Sebuah server dari LDAP juga dikenal dengan nama DSA yaitu singakatan dari Directory System Agent. LDAP diciptakan di University Of Michigan dan sifat yang dimilikinya yaitu lightweight merupakan hal yang bertolak belakang terhadap DAP yang merupakan bagian dari directory protocol X.500 untuk jaringan ataupun network. LDAP memiliki karekteristik lebih ringan dan sederhana. LDAP juga dapat kita dunakan untuk melakukan route terhadap email dalam suatu organisasi yang cukup besar atau dapat juga digunakan untuk mencari seseorang dan mesin didalam sebuah jaringan/network yang bersifat public maupun private.Sudah cukup banyak email client saat ini,misalnya Microsoft Outlook, Eudora dan Netscape Communicator yang telah menggunakan suatu bentuk dari database LDAP untuk mencari suatu alamat email. Internic dan infospace adalah dua buah contoh dari layanan pencarian public yang dibangun denagn LDAP Informasi pada LDAP disimpan dalam entry. Layaknya entry pada basis data umunya, setiap entry memiliki beberapa atribut. Setiap atribut dapat memiliki satu atau lebih nilai. Namun, jika pada basis data kita memiliki primary key untuk membedakan suatu entry dengan entry lainnya, dalam LDAP kita memiliki Distinguished Name (DN) yang bernilai unik untuk tiap entry. DN didapat dengan mengurutkan lokasi entry hingga akar hirarki.

Secara prinsip struktur database pada directory service adalah hierarchy seperti yang ditunjukkan pada gambar di atas. Seperti pada struktur hirarki pada umumnya, pada suatu database directory service akan memiliki suatu item yang dijadikan sebagai root. Untuk sebuah titik root, secara umum ditunjukkan dengan suatu atribut dc (Domain Component), namun dapat juga langsung ditunjuk dengan atribut cn (Common Name) atau ou (Organization Unit) ataupun o (Organization). Kemudian pada titik daun (leaf) biasanya akan berisi suatu item denga atribut uid (User ID) ataupun cn. Berikut beberapa atribut untuk sebuah titik pada directory service (lihat RFC 2256) : uid User id cn Common Name sn Surname l Location ou Organisational Unit o Organisation dc Domain Component st State c Country Di dalam LDAP terdapat 2 service utama yaitu : slapd dan slurp. Slapd merupakan LDAP daemon yang melayani request atau permintaan dari client, query dan berkomunikasi dengan backend

database. Sedangkan slurp merupakan replication daemon yang berfungsi melayani replikasi data agar terus terjadi sinkronisasi data antara client dan server. Di dalam mempelajari LDAP, terdapat istilah direktori dan untuk apa dia digunakan. Direktori adalah suatu database tempat penyimpanan data, yang dapat digunakan untuk memberikan informasi informasi yang berkaitan dengan object nya. Sebagai contoh : direktori dapat berupa address book, phone book , yellow pages atau google. Suatu direktori dapat membantu mencari informasi yang anda butuhkan. Misalnya: google. Disana anda dapat mencari seseorang, benda atau apapun yang ada pada dunia ini, dengan mencarinya berdasarkan keyword atau kata kunci yang kita inputkan dan telah disusun di dalam direktori google. Untuk membangun sebuah server LDAP, ada 3 hal yang perlu diketahui. Yaitu : Schema, Object Class dan Attribute. Schema adalah seperangkat aturan yang mendeskripsikan jenis data apa saja yang akan disimpan, schema akan membantu untuk menjaga konsistensi dan kualitas data sehingga dapat mengurangi terjadinya duplikasi data. Object Class adalah sekumpulan masukan yang memberi informasi jenis group dan membutuhkan atribut yang biasanya terdiri atas attribute names, attribute type, dan attribute syntax yang semuanya terkumpul dalam suatu data yang valid pada setiap kelasnya. Attribute adalah masukan yang sifatnya unik seperti uid, cn, sn, dan lain sebagainya. Attribute sendiri dapat menggunakan single value maupun multiple value. Apakah LDAP Merupakan sebuah database ? Kita dapat befikir LDAP layaknya sebuah database dengan dimensi sebanyak N, tapi akan lebih mudah jika kita berfikir LDAP layaknya sebuah pohon dengan satu objek sebagai anak dari yang lainnya dan seterusnya. Sebagai contoh jika kita akan memasukkan data sebuah orang atau personal dalam sebuah perusahaan, maka akan berbentuk sebuah perusahaan pada bagian atas, kemudian dibawahnya terdapat banyak department, kemudian terdapat para manajer dan terus ke bawah sampai kita menemukan seseorang yang kita cari, yang bukan atasan dari siapapun. Bagaimana data terorganisir pada LDAP ? Setiap item dari data dengan LDAP telah terorganisir dalam struktur bergaya pohon, dengan masing-masing item, atau entri, memiliki Distinguishing Name atau dn sendiri. Setiap entri memiliki tipe, biasanya dikenal dengan objectClass, mengatur atribut ke sebuah entri yang semata-mata merupakan sub-entri dari entri tersebut. Software LDAP yang Free adalah OpenLDAP yang merupakan juga kelompok Open Source Application. Banyak digunakan untuk pusat data bagi beberapa aplikasi dan banyak perangkat keras.

3. Cara Instalasi dan konfigurasi LDAP server di ubuntu a. Instalasi paket-paket yang dibutuhkan 1. Web Server (menggunakan apache web server) #apt-ge install apache2 2. Php5 #apt-get install php5 3. Database Server (menggunakan mysql) #apt-get install mysql-server 4. Plugin untuk mysql #apt-get install libapache2-mod-auth-mysql #apt-get install php5-mysql 5. Front end atau web base untuk Database Server (menggunakan Phpmyadmin) # apt-get install phpmyadmin b. Install Ldap Server #apt-get install slapd ldap-utils migrationstools phpldapadmin

c. Konfigurasi slapd #dpkg-reconfigure slapd pertama akan ditanyakan Omit OpenLDAP server configuration? Pilih saja No

masukkan konfigurasi dasar untuk domain ldap server, dimana kelompok kami menggunakan domain goes.ananta.com sebagai primary domain controllernya. Tekan

enter untuk melanjutkan proses konfigurasi untuk nama organisasi

untuk nama organisasi kelompok kami menggunakan ilkom untuk nama organisasi dari domainnya, enter untuk melanjutkan, maka akan ditanyakan konfigurasi password untuk ldap servernya

untuk password administrator dari ldap server , kelompok kamu menggunakan password ldapserver , enter untuk melanjutkan, selanjutnya akan ditanyakan konfigurasi backend database yang akan digunakan untuk databasenya

untuk backend databasenya kelompok kami menggunakan BDB. Enter untuk melanjutkan, selanjutnya akan ditanyakan Do you want your database to be removed when slapd is purged? Jawab No

selanjutnya akan ditanyakan Move old database? Jawab yes,

selanjutnya akan ditanyakan Allow LDAPv2 Protocol? Jawab saja no ,karena kelompok kami menggunakan LDAPv3 Protocol, sehingga tidak membutuhkan LDAPv2 Protocol, tapi ada pengecualian jika ingin menggunakan LDAPv2 Protocol maka jawab yes

kemudian lakukan testing dari konfigurasi yang telah dilakukan tadi, dengan mengetikan perintah #ldapsearch -x -b dc=goes,dc=ananta,dc=com, jika berhasil maka akan seperti gambar dibawah berikut ini, jika gagal berarti ldapserver belum di start, untuk menstart ldapserver dapat mengetikan perintah #/etc/init.d/slapd start

kemudian install ldap client authentication dengan mengetikan perintah #apt-get install ldap-auth-client Setelah paket tersebut di install, maka debconf langsung menanyakan beberapa hal berkaitan dengan libnss- ldap. 1. Should debconf manage LDAP configuration? Yes 2. LDAP server Uniform Resource Identifier: ldap://192.168.10.254 3. Distinguished name of the search base: dc=goes,dc=ananta,dc=com 4. LDAP version to use: 3 5. Make local root Database admin: Yes 6. Does the LDAP database require login? No 7. LDAP account for root: cn=admin,dc=goes,dc=ananta,dc=com 8. LDAP root account password: (kelompok kami menggunakan ldapserver) 9. Local crypt to use when changing passwords: md5 kemudian setelah itu konfigurasikan berkas config.php yag berada pada direktory /etc/phpldapadmin/ dengan cara mengetikkan perintah #vim /etc/phpldapadmin/config.php kemudian rubah baris ini

/* Array of base DNs of your LDAP server. Leave this blank to have phpLDAPadmin auto-detect it for you. */ $ldapservers->SetValue($i,'server','base',array('dc=nodomain')); menjadi /* Array of base DNs of your LDAP server. Leave this blank to have phpLDAPadmin auto-detect it for you. */ $ldapservers->SetValue($i,'server','base',array('dc=goes,dc=ananta,dc=com')); kemudian rubah juga baris berikut ini /* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or 'cookie' or 'session' auth_types, LEAVE THE LOGIN_DN AND LOGIN_PASS BLANK. If you specify a login_attr in conjunction with a cookie or session auth_type, then you can also specify the login_dn/login_pass here for searching the directory for users (ie, if your LDAP server does not allow anonymous binds. */ // $ldapservers->SetValue($i,'login','dn',''); $ldapservers->SetValue($i,'login','dn','cn=admin,dc=nodomain); menjadi /* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or 'cookie' or 'session' auth_types, LEAVE THE LOGIN_DN AND LOGIN_PASS BLANK. If you specify a login_attr in conjunction with a cookie or session auth_type, then you can also specify the login_dn/login_pass here for searching the directory for users (ie, if your LDAP server does not allow anonymous binds. */ // $ldapservers->SetValue($i,'login','dn',''); $ldapservers->SetValue($i,'login','dn','cn=admin,dc=goes,dc=ananta,dc=com'); kemudian konfigurasikan berkas php.ini yang berada pada direktory /etc/php5/apache2/, dengan cara mengetikkan perintah #vim /etc/php5/apache2/php.ini, cari baris ini memory_limit = 16M, rubah menjadi memory_limit = 32M, agar nanti pada saat login ke phpldapadmin di browser tidak menampikan pesan Your Php Memory is limit low. Setelah itu restart service slapd dan apache2 dengan mengetikkan perintah #/etc/init.d/slapd restart #/etc/init.d/apache2 restart

kemudian buka web browser untuk melakukan konfigurasi phpldapadmin, dengan alamat http://localhost/phpldapadmin atau alamat dari server ldap kelompok kami yaitu http://192.168.10.254/phpldapadmin

untuk login DN kelompok kami menggunakan cn=admin,dc=goes,dc=ananta,dc=com dan passwordnya ldapserver. Jika berhasil login akan maka akan seperti gambar dibawah ini

kemudian yang kita lakukan sekarang adalah membuat user account yang nantinya akan digunakan untuk login ke system yang telah dibuat, sistem yang kelompok kami pergunakan adalah

wordpress-mu dan moodle. Untuk membuat user account klik tanda + di sebelah kiri dc=goes, dc=ananta, dc=com, sehingga akan terlihat seperti berikut ini

seharusnya, maka akan ada cn =admin saja, namun karena kelompok kami sudah pernah membuat user maka akan terlihat ada ou=group dan ou=people. Untuk membuat user baru yang pertama perlu kita lakukan adalah membuat group baru, klik Create new entry here, kemudian klik organisasional unit, seperti yang terlihat berikut ini

kemudian kita akan disuruh untuk membuat object baru pada organisasional unit tersebut, buat nama object baru tersebut dengan nama orang kemudian klik create object

setelah itu maka akan terlihat seperti gambar berikut ini

kemudian buat juga group lagi dengan cara yang sama yaitu nama groupnya manusia. Kemudian klik object group manusia tersebut, kemudian klik create a child entry, kemudian klik posix Group

kemudian kita akan disuruh untuk membuat nama groupnya, dengan nama pengguna, kemudian klik create object

kemudian klik object orang yang nantinya akan kita pergunakan untuk membuat user baru dengan group yang sudah kita buat tadi. Klik object orang, kemudian klik create a child entry , kemudia klik user account, kemudian masukan data yang kita inginkan untuk user account yang baru, untuk first name =pengguna, lastname=baru, common name=penggunabaru, user id=penggunabaru, password=123456, group ID = pengguna, homedirectory =/home/users/penggunabaru, klik create object

jika berhasil maka akan ada pesan sebagai berikut Creation successful! DN: cn=penggunabaru,ou=orang,dc=goes,dc=ananta,dc=com has been created. Sekarang user account yang baru sudah dapat digunakan untuk login yang telah dibuat. Berikutnya adalah instalasi CMS yang akan digunakan dan di sinkronisasikan untuk ldap authentication 1. Wordpress-mu a. download worpress-mu dari mu.wordpress.org b. ekstrak wordpress-mu yang telah di download tadi di direktory /var/www c. rubah hak akses dan hak kepemilikannya dengan cara - merubah hak akses #chmod -R 777 wordpress-mu - merubah kepemilikan #chown www-data.www-data wordpress-mu d. buka browser, ketikan alamat http://localhost/wordpress-mu atau http://192.168.10.1 (alamat web server kelompok kami), instalasi wordpress-mu siap dijalankan, dan isikan data sesuai dengan keinginan e. jika telah selesai melakukan instalasi, login ke halaman administrator f. download plugin wpmu-ldap, agar wordpress dapat di autentifikasi dengan user yang telah dibuat di ldapserver, untuk user yang akan kelompok kami gunakan adalah username=ananta, password=123456 g. setelah selesai download. Ekstraklah plugin wpmu-ldap tersebut ke direktory tempat menginstall wordpress, hasil ekstrak ditaruh pada direktory wp-content/mu-plugin h. kembali pada halaman login administrator di web browser

i. Jika berhasil login, akan nampak seperti gambar diatas. Kemudian untuk konfigurasi agar wordpress dapat disinkronisasi dengan user single sign on yang telah dibuat tadi di ldapserver, klik Site Admin->LDAP Options, maka akan nampak seperti gambar dibawah ini

j. kemudian konfigurasikan wordpress dengan ldap user, dengan cara mensetting connectionnya, dan general setting, untuk konfigurasi connection setting sebagai berikut - LDAP-Authentification - Server Encryption - Server Address - Server Port : Enable : none : 192.168.10.254 : 389

- Search DN - Search User DN - Password - Ldap Type - Test Connection

: dc=goes, dc=ananta,dc=com : cn=ananta,ou=people,dc=goes,dc=ananta,dc=com : 123456 : Linux : Yes

kemudian klik save configuration, jika berhasil akan ada tulisan LDAP Connection Test: Successful! , ini menandakan bahwa antara wordpress dengan Ldap Server telah terkoneksi

k. kemudian jangan lupa untuk mengkonfigurasikan General Setting, klik general setting, kemudian isikan sebagai berikut - Use Single Sign-On? - Auto-Create WPMU Accounts? : Yes : Yes

kemudian klik save pada bagian bawah. Setela itu logout halaman login administrator, dan cobalah login dengan user ldap yang telah dibuat tadi, yaitu username = ananta, password =123456

jika misalnya login gagal maka akan nampak seperti gambar dibawah ini

dan jika berhasil login maka akan nampak seperti gambar dibawah ini

2. Moodle a. download moodle dari moodle.org b. buat direktory moodledata di /var b. ekstrak wordpress-mu yang telah di download tadi di direktory /var/www c. rubah hak akses dan hak kepemilikannya dengan cara - merubah hak akses #chmod -R 777 wordpress-mu - merubah kepemilikan #chown www-data.www-data wordpress-mu d. buka browser, ketikan alamat http://localhost/wordpress-mu atau http://192.168.10.1 (alamat web server kelompok kami), instalasi wordpress-mu siap dijalankan, dan isikan

data sesuai dengan keinginan, kemudian tinggal ikuti saja dengan mensubmit semua yang diperintahkan e. jika telah selesai melakukan instalasi, login ke halaman administrator

f. download dan ekstrak plugin ldapsso direktory /var/www/moodle/auth untuk mengkoneksikan moodle dengan ldapserver g. kembali ke halaman login administrator, kemudian klik Users->Authentification ->Manage Authentication

kemudian klik lambang mata yang tertutup pada LDAP server dan LDAP URL SSO,

untuk meng-enable, agar antara moodle dan ldapserver dapat terhubung. Dapat dilihat pada gambar dibawah ini

kemudian klik ldapserver disebelah kiri, sehingga nampak gambar sebagai berikut

kemudian pada untuk konfigurasinya - Host URL - Version - LDAP encoding - Hide Password - Distinguished Name : ldap://192.168.10.254 :3 : utf-8 : yes : cn=ananta,ou=people,dc=goes,dc=ananta,dc=com

- Password - User Type - Contexts

: 123456 : posixAccount : ou=people,dc=goes,dc=ananta,dc=com

kemudian save konfigurasi tersebut pada bagian paling bawah. Setelah itu kita perlu mengkonfigurasikan LDAP URL SSO, dengan mengklik LDAP URL SSO

konfigurasi untuk LDAP URL SSO ini kurang lebih sama dengan LDAP serrver tadi, namun ada sedikit perbedaan, yaitu - ldapsso_portal - ldapsso_auth_key : 192.168.10.254 : (digenerate langsung oleh moodle)

- Create LDAP Users Internally : yes - ldapsso_failed_login_url : http://192.168.10.1/auth/ldapsso/failed_login.php - Host URL - Version - LDAP encoding - Hide Password - Distinguished Name - Password - User Type - Contexts : ldap://192.168.10.254 :3 : utf-8 : yes : cn=ananta,ou=people,dc=goes,dc=ananta,dc=com : 123456 : posixAccount : ou=people,dc=goes,dc=ananta,dc=com

kemudian save konfigurasi tersebut pada bagian paling bawah. Semua konfigurasi gar moodle dapat menggunakan Single Sing On dnegan user yan telah dibuat di ldap server,

yaitu dengan user=ananta, password =123456, telah dapat digunakan, untuk melakukan uji coba, log out halaman administrator, dan login kembali dengan menggunakan user=ananta, password=123456 jika gagal melakukan koneksi dengan ldapserver maka akan menampilkan pesan LDAPmodule cannot connect to any servers: nampak seperti gambar dibawah ini

dan jika berhasil melakukan login dengan user yang telah dibuat di ldapserver, maka akan pertama kali dibawa kehalaman edit user profile seperti yang nampak pada gambar dibawah ini

demikianlah laporan dari kami kelompok 5 mengenai Single Sign On