• Tidak ada hasil yang ditemukan

Implementasi Single Sign On Menggunakan Centralized Authentication Service Pada Aplikasi Web Multiplatform

N/A
N/A
Protected

Academic year: 2021

Membagikan "Implementasi Single Sign On Menggunakan Centralized Authentication Service Pada Aplikasi Web Multiplatform"

Copied!
10
0
0

Teks penuh

(1)

Implementasi Single Sign On Menggunakan Centralized Authentication

Service Pada Aplikasi Web Multiplatform

Andrea Dika Pradana1, Yusapril Eka Putra2 , dan Ibnu Surya3

Jurusan Komputer Politeknik Caltex Riau Jl. Umbansari no.1 Rumbai Pekanbaru 28265

1

andrea.dika@gmail.com, 2yusapril.putra@gmail.com, 3 ibnusurya@gmail.com

Abstrak

Web adalah sebuah media informasi dan komunikasi yang cukup populer saat ini. web dapat diakses melalui berbagai perangkat yang terhubung ke jaringan. Karena web bersifat multi platform banyak aplikasi web yang dikembangkan untuk memenuhi kebutuhan tiap-tiap individu. Seiring dengan banyaknya aplikasi web yang digunakan oleh user, user terkadang harus menghafal kombinasi username dan password lebih dari satu. Oleh karena itu munculah teknologi login yang dikenal dengan Single Sign On (SSO). SSO adalah suatu teknik yang memungkinkan user untuk mengakses resource yang berbeda tanpa harus menginputkan username dan password untuk login kembali. Dengan SSO, user tidak perlu melakukan login kembali saat berpindah antar aplikasi. Sistem autentikasi SSO yang terpusat memudahkan user dalam melakukan manajemen password. Penelitian ini menggunakan LDAP sebagai media autentikasi, serta aplikasi web berbasis JSP,PHP, dan ASP.NET yang akan diintegrasikan dengan Centralized Authentication Service (CAS). Penelitian ini berhasil menyatukan autentikasi username dan password dengan menggunakan server LDAP melalui server CAS yang diterapkan pada server web berbasis PHP,JSP dan ASP.NET

Abstract

Web is an information and communication media that is quite popular today. Web can be accessed from any device that connect to the network. Web applications are multiplatform and because of that many websites are being developed to meet the needs of each individual. People that use many web aplication are often need to remember more than one credential to login. Because of that a new login system is developed. Single sign on is the name of the new login system. User doesn’t need to login again to access different web application that using this system too. A centralized authentication system that single sign on provides can help user from remembering too many username and password combination for each web application and the time consumed by conventional login process will be reduced. This research use Lightweight Directory Access Protocol (LDAP) as authentication medium, and web application written in ASP.NET, JSP, and PHP that will be integrated to Centralized Authentication System (CAS). This research have successfully integrating authentication mechanism with LDAP and CAS in ASP,JSP, and PHP web aplication.

Keywords: LDAP, CAS, SSO,PHP,JSP,ASP.NET 1 Pendahuluan

Web adalah sebuah media informasi dan komunikasi yang cukup populer saat ini. Tak hanya dapat diakses melalui komputer, web dapat diakses melalui berbagai perangkat yang terhubung ke jaringan. Karena web bersifat multi platform cukup banyak aplikasi web yang dikembangkan. Berbagai macam aplikasi web ada untuk memenuhi kebutuhan tiap-tiap individu, mulai dari aplikasi perkantoran seperti Office Web App hingga aplikasi jejaring sosial seperti Facebook. Terkadang suatu aplikasi meminta user untuk memasukan username dan password agar aplikasi tersebut dapat berjalan. Hal ini terkadang merepotkan dan menyita waktu user apabila lupa atau salah menginputkan kombinasi username dan passwordnya.

Single sign on merupakan solusi dari permasalahan login diatas, single sign on membuat proses login menjadi tersentralisasi. User tidak lagi direpotkan menghafal username dan

(2)

password yang banyak. Dengan single sign on user tidak perlu melakukan login kembali saat akan berpindah antar aplikasi.

Penelitian sebelumnya telah dilakukan oleh oleh Saputro,Satoto, dan Rochim(2012) dan Rudy, Richie, dan Gunadi(2009). Penelitian kali ini masih menggunakan Centralized Authentication Service(CAS) dan server Lightweight Directory Access Protocol seperti pada penelitian terdahulu. Perbedaan penelitian ini adalah pada penggunaan web dengan tiga bahasa pemrograman yang berbeda, yakni ASP.NET, JSP, dan PHP. Adapun jenis web yang akan digunakan adalah web non-CMS.

2 Tinjauan Pustaka

2.1 Lightweight Directory Access Protocol (LDAP)

LDAP merupakan sebuah protokol yang digunakan untuk melihat maupun memanipulasi suatu objek yang terkandung dalam sebuah direktori. LDAP dirancang untuk aplikasi manajemen dan browser yang menyediakan akses direktori secara interaktif. LDAP dapat digunakan untuk mengakses direktori berbasis X.500 maupun yang proprietary.

Suatu direktori akan memiliki item yang akan dijadikan sebagai root. Untuk setiap titik root, secara umum ditunjukkan dengan suatu attribut dc (DomainComponent) atau ou (OrganizationalUnit). Kemudian pada titik daun biasanya akan berisi item dengan attributuid (User ID) atau cn (Common Name). Directory service biasanya menyimpan bentuk struktur tree yang dinamakan Directory Information Tree (DIT). Setiap titik pada DIT diberi suatu alamat, baik secara relatif ataupun absolut. Untuk suatu alamat yang relatif disebut dengan Relative Distinguished Name (RDN) sedangkan alamat yang absolut disebut dengan (Distinguished Name) (Hartono, 2007)

2.2 Single Sign On

Teknologi SingleSign On (SSO) adalah teknologi yang mengizinkan pengguna jaringan agar dapat mengakses sumberdaya dalam jaringan hanya dengan menggunakansatu akun pengguna saja (Hendi, 2010). Teknologi ini sangat diminati dalam jaringan yang sangat besar dan bersifat heterogen (aplikasi-aplikasi yang digunakan oleh komputer berasal dari banyak vendor, dan pengguna dimintai untuk mengisi informasi dirinya ke dalam setiap aplikasi yang berbeda tersebut yang hendak diakses oleh pengguna). Dengan menggunakan SSO, seorang pengguna hanya cukup melakukan proses autentikasi sekali saja untuk mendapatkan izin akses terhadap semua layanan yang terdapat di dalam jaringan

2.3 Central Authentication Service

CAS adalah sebuah solusi untuk permasalahan web single sign on. Proyek CAS pertama kali dikembangkan oleh Shawn Bayern pada tahun 2001 di Universitas Yale, kemudian CAS 2.0 dikembangkan di tahun 2002. CAS terdiri dari sebuah server yang dapat melayani proses autentikasi dari beberapa CAS client. CAS server adalah sebuah server yang akan melayani request authentikasi dari CAS client. CAS client merupakan file atau script yang harus ditambahkan di aplikasi web yang akan diintegrasikan dengan single sign on, jadi setiap aplikasi web yang akan berpartisipasi dengan single sign on, perlu disisipkan CAS client pada konfigurasi aplikasi webnya. Server CAS mendukung beberapa mekanisme autentikasi, diantaranya autentikasi dengan menggunakan LDAP/AD, Kerberos, atau RDBMS. Salah satu kelebihan dari CAS adalah framework single sign on ini mudah untuk diintegrasikan pada aplikasi web yang sudah ada.

(3)

Gambar 1 Diagram Alir Autentikasi CAS

Prinsip kerja CAS cukup sederhana, ketika user login, server CAS akan memberikan sebuah tiket (biasanya disimpan dalam cookies), tiket ini nantinya digunakan untuk mengautentikasikan user pada setiap aplikasinya. Jadi pada setiap aplikasi akan dilakukan pengecekan dari ticket yang telah diberikan oleh CAS tersebut.

3 Perancangan 3.1 Topologi Jaringan

Berikut ini adalah topologi jaringan yang akan digunakan.

(4)

Tabel 1 Keterangan Perangkat Keras

PC IP SO Aplikasi

DNS 192.168.1.99/24 Windows Server 2003 Windows DNS

IIS Webserver 192.168.1.26/24 Windows Server 2003 IIS, Microsoft SQL Database, CAS .NET Client

Apache Tomcat 192.168.1.77/24 Ubuntu 10.04 Apache Tomcat, Mysql, Java Runtime Environtment, Java CAS Client

CAS Server 192.168.1.24/24 Ubuntu 10.04 Apache Tomcat, CAS Server, JRE,openLDAP,LSC, phpLdapAdmin, openLDAP, JRE, LDAP Synchronization Connector

Apache Webserver

192.168.1.55 Ubuntu 10.04 Apache2, php5,Mysql, phpCAS Client

PC Client 172.16.40.1/24 Windows XP Firefox web browser

PC Client 172.16.40.2/24 Windows XP Firefox web browser

3.2 Flowchart Login

Ketika user melakukan login, server CAS akan melakukan pengecekan terhadap account user di database LDAP, apabila ada maka autentikasi sukses dan user akan diarahkan ke halaman utama. Apabila user tidak ditemukan maka akan dilakukan proses penambahan user dari LDAP ke database

Gambar 3 Flowchart Login

Halaman Login CAS

Cek Validasi Data di LDAP Halaman Utama Valid Mulai Selesai Pesan Error

Input Username dan Password

B B Invalid Cek Username di Database Ada

Insert username dan Password ke Database

(5)

3.3 Flowchart Tambah User

Ketika user melakukan registrasi, sistem akan mengecek ketersediaan account di LDAP, apabila tersedia maka LDAP akan diupdate bersama dengan database web.

Gambar 4 Flowchart Tambah User

3.4 Flowchart Ganti Password

Ketika user mengubah password, maka sistem akan mengupdate password ke database dan kemudian akan dilanjutkan ke LDAP.

Gambar 5 Flowchart Ganti Password

3.5 Aplikasi Web

Adapun aplikasi web yang akan diintegrasikan dengan sistem single sign on ini adalah aplikasi web berbasis PHP, JSP, dan ASP.NET

Halaman Registrasi Cek username di LDAP Input Data ke DB Tidak Ada Mulai Selesai Pesan Error Input Data B B Ada

Input Data ke LDAP

Halaman Ganti Password

Update Password ke DB Error Update LDAP Start Selesai Pesan Error Input Password Success B B

(6)

3.6 Struktur Database LDAP

Struktur dari database LDAP yang akan digunakan adalah sebagai berikut

Gambar 6 Struktur LDAP

Adapun data username dan password user akan tersimpan di bawah node ou=people dengan identifier uid

Adapun file LDIF yang digunakan untuk membentuk struktur LDAP seperti diatas adalah sebagai berikut.

1 dn: dc=pcr,dc=world objectClass: top objectClass: dcObject objectclass: organization o: pcr World dc: pcr description: LDAP pcr 2 3 dn: cn=admin,dc=pcr,dc=world objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin

description: LDAP administrator userPassword: secret

4

5 dn: ou=people,dc=pcr,dc=world objectClass: organizationalUnit ou: people

Baris pertama digunakan untuk membuat top entry dari LDAP yakni dc=pcr,dc=world. Baris ke dua untuk membuat entry admin seperti gambar perancangan LDAP pada gambar 5. Baris kedua dan keempat kosong karena untuk setiap penulisan entry yang baru perlu diberi jarak antara satu entry dengan entry lainnya.

3.7 CAS Server

Agar CAS server dapat berkomunikasi dengan server LDAP maka perlu ditambahkan baris kode berikut ini pada dokumen deployerConfigContext.xml yang ada pada folder WEB-INF/

1 <bean id="contextSource"

class="org.springframework.ldap.core.support.LdapContextSource"> 2 <property name="pooled" value="false"/>

3 <property name="url" value="ldap://localhost" /> dc=world

dc=pcr

(7)

4 <property name="userDn" value="admin"/>

5 <property name="password" value="your_manager_password"/> 6 <property name="baseEnvironmentProperties">

7 <map>

8 <entry key="com.sun.jndi.ldap.connect.timeout" value="3000" /> 9 <entry key="com.sun.jndi.ldap.read.timeout" value="3000" /> 1

0

<entry key="java.naming.security.authentication" value="simple" /> 1 1 </map> 1 2 </property> 1 3 </bean>

Baris ketiga pada kode diatas menunjukkan bahwa server LDAP juga terinstall di CAS Server. Baris ke 8-9 menunjukkan batas toleransi delay untuk login ke LDAP dan membaca data dari LDAP, adapun satuan waktu yang digunakan adalah milisecond. Kemudian baris ke 10 menunjukkan tipe autentikasi yang digunakan yaitu simple, ini berarti saat melakukan autentikasi, password akan dikirim dalam bentuk plain text.

Kemudian, pada bagian properti authenticationHandlers ubah menjadi seperti berikut agar dapat membaca properti uid milik user di LDAP

1 <property name="authenticationHandlers"> 2 <list> 3 <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServ iceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" /> 4 <bean class="org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHand ler" p:filter="uid=%u,ou=people,dc=pcr,dc=world" p:contextSource-ref="contextSource" />

5 </list> 6 </property>

Baris keempat pada kode diatas berisikan alamat letak informasi user disimpan di LDAP. Adapun %u pada baris tersebut menunjukkan bahwa nilai uid merupakan nilai yang didapat dari passing username saat proses login melalui CAS server

3.8 CAS Client

Agar aplikasi web dapat berkomunikasi dengan CAS server, maka dibutuhkan file CAS client. Terdapat tiga file CAS client yang resmi dari situs http://www.jasig.org/cas yakni CAS client untuk ASP.NET, JSP, dan PHP. File tersebut harus ditambahkan kedalam aplikasi web masing-masing. Selain itu perlu sedikit konfigurasi agar file CAS client benar-benar terintegrasi ke sistem.

1 require_once '../phpCAS/CAS.php';

2 phpCAS::setCasServerCACert(‘/home/hilwanz/root-ca.crt’); 3 phpCAS::handleLogoutRequests(false);

(8)

4 phpCAS::forceAuthentication();

Kode diatas adalah kode yang harus disisipkan pada aplikasi web berbasis PHP, yaitu pada file login.php. Baris pertama menunjukkan letak file CAS client tersimpan. Baris

kedua menunjukkan letak Certificate of Authority tersimpan. Fungsi

phpCAS::forceAuthentication() pada baris keempat menunjukkan bahwa aplikasi web ini harus diautentikasi menggunakan CAS server.

4 Pengujian dan Analisa 4.1 Skenario Pengujian

Pengujian implementasi SSO menggunakan CAS pada aplikasi web multiplatform dilaksanakan di laboratorium Politeknik Caltex Riau dengan 5 unit perangkat PC, 1 unit switch dan 1 unit cisco router. Dimana pengujian yang dilakukan antara lain:

• Melakukan login ke sistem.

• Mengakses Aplikasi web yang berbeda.

• Melakukan logout dari sistem.

• Login dari dua atau tiga PC client yang berbeda dengan satu ID saja.

• Uji coba implementasi CAS pada virtual direktori.

• Pengujian dengan menonaktifkan server LDAP.

• Pengujian dengan menonaktifkan server CAS

4.2 Hasil Pengujian

a. Pengujian Login ke Sistem

Pengujian dilakukan dengan melakukan login ke dalam aplikasi web. Hasil pengujian login ke sistem adalah sebagai berikut:

Tabel 2 Pengujian Login Tabel 3

Aplikasi Web Login Berhasil Login Gagal

PHP Server √ x

JSP Server √ x

ASP Server √ x

b. Pengujian dengan Menonaktifkan Server LDAP

Pengujian ini dilakukan untuk melihat dampak yang terjadi apabila server LDAP mengalami kerusakan.

Tabel 4 Pengujian dengan Menonaktifkan Server LDAP

Aplikasi Web Parameter Pengujian

Login Ganti Password Single Sign On Register User

PHP Gagal Gagal Gagal Gagal

JSP Gagal Gagal Gagal Gagal

(9)

c. Pengujian dengan Menonaktifkan Server CAS

Pengujian ini bertujuan untuk melihat dampak yang terjadi apabila server CAS mengalami kerusakan.

Tabel 5 Pengujian Menonaktifkan Server CAS

Aplikasi Web Parameter Pengujian

Login Ganti Password Single Sign On Register User

PHP Gagal Gagal Gagal Berhasil

JSP Gagal Gagal Gagal Berhasil

ASP Gagal Gagal Gagal Berhasil

5 Kesimpulan dan Saran 5.1 Kesimpulan

Kesimpulan yang diperoleh dari proyek akhir ini adalah sebagai berikut:

1. CAS merupakan solusi single sign on yang dapat berjalan pada aplikasi berbasis ASP.NET, JSP, dan PHP

2. Konfigurasi CAS client melekat pada sisi aplikasi bukan webserver

3. Dengan menggunakan CAS Server user hanya perlu menginputkan username dan password sekali saja, ketika user ingin login ke website yang lain cas server akan otomatis mengautentikasi user tersebut

4. CAS dapat berjalan pada aplikasi web yang menggunakan virtual host.

5. CAS server hanya menyediakan layanan single sign on, web developer masih diperlukan untuk membuat proses penggantian password dan registrasi user agar mengarah ke server LDAP.

6. Apabila server LDAP atau CAS tidak aktif, proses login user akan gagal. 7. Apabila server CAS tidak aktif, proses registrasi user masih dapat dilakukan

5.2 Saran

Adapun saran untuk pengembangan proyek akhir ini adalah sebagai berikut: 1. Analisa keamanan dari sistem single sign on.

2. Melakukan clustering CAS server, sehingga apabila ada CAS server yang mengalami kegagalan, layanan web tidak mengalami gangguan karena masih mempunyai CAS server cadangan

3. Menggunakan protokol ldaps untuk menambah keamanan koneksi ke database LDAP

6 Daftar Pustaka

[1] Allen, R., Larson, M., Liu, C., “DNS On Windows Server 2003”, O'Reilly, 2003. [2] Arkills, B., “LDAP Directories Explained: An Introduction and Analysis”, Addison

Wesley. Boston, MA02116, U.S.A, 2003.

[3] Cisco, Introduction to Secure Socket Layer, Cisco, diambil dari

(10)

[4] Johner,H., dkk, Understanding LDAP, diambil dari http://courses.cs.vt.edu/cs5204 /fall05-kafura/Papers/Naming/PagesFrom UnderstandingLDAP.pdf, 1998

[5] Rudy,Riechie, dan Gunadi, O., Integrasi Aplikasi Menggunakan Single Sign On

Berbasiskan Lightweight Directory Access Protokol (LDAP) Dalam Portal Binus@ccess (Bee-Portal), 2009

[6] Marshall, B., Introduction to LDAP, diambil dari http://quark.humbug.org. au/publications/ldap/ldap_tut_v2.pdf, 2000

[7] Pangestu, H., Implementasi SSO ( SINGLE SIGN ON ) Menggunakan Autentikasi

NCSA untuk Website di Web Server, diambil dari http://repository.

politekniktelkom.ac.id/Proyek%20Akhir/TK/IMPLEMENTASI%20SSO%20(%20 SINGLE%20SIGN%20ON%20)%20MENGGUNAKAN%20AUTENTIKAS%20N CSA%20UNTUK%20WEBSITE%20DI%20WEB%20SERVER.pdf

Gambar

Gambar 1  Diagram Alir Autentikasi CAS
Gambar 3  Flowchart Login
Gambar 4  Flowchart Tambah User
Gambar 6  Struktur LDAP
+3

Referensi

Dokumen terkait

Pada tahap ketiga atau monitoring, sampel dipantau oleh tim langsung baik oleh tim pelaksana ataupun tim evaluator dari pusat dalam kegiatan penelitian pengaruh serat

Hal ini sejalan dengan pendapat yang dikemukakan oleh Ibrahim dan Syaodih (2010:112) yang menyatakan bahwa media adalah segala sesuatu yang dapat digunakan untuk

Mengikuti dan menganalisis strategi yang dilakukan oleh pesaing sangalah penting untuk mengetahui sejauh mana bisnis pesaing sejenis melakukan perubahan

Tujuan penelitian ini, untuk mengetahui apakah metode mind mapping dan model pembelajaran kooperatif tipe think pair share berpengaruh terhadap kemampuan

Tahap penelitian diawali dengan sterilisasi benih di dalam desikator selama 2 × 24 jam. Prosedur sterilisasi yaitu dengan menaruh selapis benih kedelai dari

Langkah ketiga dari model manajemen strategik adalah implementasi strategi yang meliputi: program, anggaran dan prosedur. Berdasarkan hasil penelitian menunjukkan

Analisis faktor adalah suatu teknik untuk menganalisis tentang saling ketergantungan (interdependence) dari beberapa variabel secara silmultan dengan tujuan untuk

Untuk mentransmisikan daya dan putaran dari motor penggerak ke mesin atau alat yang digerakan, maka diperlukan suatu elemen yang dapat mentransmisikan daya maupun