• Tidak ada hasil yang ditemukan

Implementasi Sistem Single Sign-On Berbasis Java

N/A
N/A
Protected

Academic year: 2016

Membagikan "Implementasi Sistem Single Sign-On Berbasis Java"

Copied!
88
0
0

Teks penuh

(1)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

IMPLEMENTASI SISTEM SINGLE SIGN-ON BERBASIS

JAVA

OLEH :

NAMA

: NURSYAMSI

NIM

: 040402003

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

IMPLEMENTASI SISTEM SINGLE SIGN-ON BERBASIS

JAVA

O L E H :

NAMA : NURSYAMSI

NIM : 040402003

Tugas Akhir ini diajukan untuk melengkapi salah satu syarat untuk memperoleh gelar Sarjana Teknik

pada

DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA MEDAN

Sidang pada tanggal 22 bulan Agustus tahun 2009 di depan Penguji : 1. Fahmi ST, M.Sc : Ketua Penguji : ……….

Ketua Departemen Teknik Elektro

(3)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

IMPLEMENTASI SISTEM SINGLE SIGN-ON BERBASIS

JAVA

O L E H :

NAMA : NURSYAMSI

NIM : 040402003

Tugas Akhir ini diajukan untuk melengkapi salah satu syarat untuk memperoleh gelar Sarjana Teknik

pada

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

MEDAN

Sidang pada tanggal 22 bulan Agustus tahun 2009 di depan Penguji : 1. Fahmi ST, M.Sc : Ketua Penguji

2. Ori Novanda ST, MT : Anggota Penguji 3. Ali Hanafiah ST, MT : Anggota Penguji

Diketahui oleh : Disetujui oleh :

Ketua Departemen Teknik Elektro, Pembimbing Tugas Akhir,

(Prof.Dr.Ir.Usman Baafai)

NIP : 194 610 221 973 021 001 NIP : 132 258 001 (Soeharwinto, ST. MT)

(4)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

ABSTRAK

Tugas akhir ini mengimplementasikan sistem Single Sign-On (SSO)

berbasis Java dengan menggunakan aplikasi Java Open Single Sign-On (JOSSO).

Teknologi SSO dapat mengurangi faktor kesalahan manusia dengan

menyederhanakan proses login ke berbagai aplikasi web. Implementasi SSO pada

aplikasi web dibuat menggunakan metode studi literatur, diskusi, perancangan

dan implementasi. Aplikasi web yang dibuat dapat menunjukkan bagaimana

proses implementasi SSO dengan menggunakan JOSSO. Dengan adanya aplikasi

web berbasis SSO ini maka seorang pengguna hanya perlu mengingat satu buah

username dan password (credential) untuk berbagai aplikasi web dan juga

seorang pengguna hanya sekali melakukan proses login dan logout ke berbagai

aplikasi web.

Keyword: credential, SSL, user, role, service provider, identity provider, agent,

(5)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

KATA PENGANTAR

Puji syukur penulis ucapkan kehadirat ALLAH SWT atas rahmat dan karunia

yang dilimpahkan sehingga dapat menyelesaikan Tugas Akhir ini. Adapun Tugas

Akhir ini dibuat untuk memenuhi syarat kesarjanaan di Departemen Teknik Elektro,

Fakultas Teknik Universitas Sumatera Utara, yang penulis beri judul “Implementasi

Sistem Single Sign-On Berbasis Java”.

Tugas akhir ini penulis persembahkan kepada yang teristimewa yaitu

ayahanda, Selamat, ibunda, Nadima, Abang saya Annajmi, dan Zulfajri, serta

adik-adik saya Khusnul Firdaus dan Imro Atun Hasanah, yang merupakan bagian

hidup penulis yang senantiasa mendukung dan mendoakan dari sejak penulis lahir

hingga sekarang.

Selama masa perkuliahan sampai masa penyelesaian tugas akhir ini, penulis

banyak memperoleh bimbingan dan dukungan dari berbagai pihak. Untuk itu, dengan

setulus hati penulis menyampaikan ucapan terima kasih yang sebesar-besarnya

kepada :

1. Bapak Soeharwinto,ST, MT, selaku dosen Pembimbing Tugas Akhir, atas segala

bimbingan, pengarahan dan motivasi dalam menyelesaikan Tugas Akhir ini.

2. Bapak Ir. Panusur SM.L Tobing, selaku dosen wali penulis, atas bimbingan dan

arahannya dalam menyelesaikan perkuliahan.

3. Bapak Ir. Nasrul Abdi, MT selaku Ketua Departemen Teknik Elektro FT-USU

dan Bapak Rachmad Fauzi, ST, MT selaku Sekretaris Departemen Teknik Elektro

(6)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

4. Seluruh Staf Pengajar di Departemen Teknik Elektro USU dan Seluruh Karyawan

di Jurusan Teknik Elektro Fakultas Teknik Elektro USU.

5. Rekan-rekan yang memberikan sumbangsih ilmu, pikiran, tenaga, alat, tempat,

dan transportasi dalam pengerjaan tugas akhir ini yaitu Bang Abu Bakar, Bang

Faisal, Ahmad Fausan, M. Salman, Jhoni Hidayat, dan Muhfi Asbin Sagala.

6. Teman-teman angkatan ’04, Tosa, Fauzan, Hafiz, Rudi, Salman, Aris, Bismo,

Aulia, Jhoni, Luthfi, Daus, Harry, Muhfi, Adi, Fahmi, Hans, Ijal, Juan, Roy, Dodi

Barus, Anhar, Wahyu, Eko, Ronal Trimayudi, Ai, Augus, Sabri, dan teman-teman

’04 lain yang tidak bisa disebutkan satu per satu.

7. Rekan-rekan junior di Elektro Fachrurrazy Rizki Zulkarnaen, Iqri, Luthfi

Abdurrahman, Prindi Wibowo, Rifqi, Rahmuddin, Megi , Dedi, Ricky, Apri, Joni

Nasution, Salman Alfarisi, Teguh, Supenson, dan Firmanto.

8. Dan pihak-pihak yang tidak dapat penulis sebutkan satu persatu.

Akhir kata, tugas akhir ini masih jauh dari sempurna, masih banyak kesalahan

dan kekurangan, namun penulis tetap berharap semoga Tugas Akhir ini bisa

bermanfaat dan memberikan inspirasi bagi pengembangan selanjutnya

Medan, Agustus 2009

Penulis

(7)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

DAFTAR ISI

ABSTRAK ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... v

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... ix

DAFTAR KODE... x

BAB I PENDAHULUAN I.1 Latar Belakang ... 1

I.2 Rumusan Masalah ... 2

I.3 Tujuan Penelitian ... 2

I.4 Batasan Masalah ... 2

I.5 Metode Penulisan ... 3

I.6 Sistematika Penulisan ………. 3

BAB II DASAR TEORI 2.1 Teknologi Java ... 5

2.2 Internet sebagai Sistem Client-Server ... 6

2.3 Mekanisme Kerja TCP/IP ... 9

2.3.1 Security Lapisan Aplikasi (Application Layer Security) ... 10

2.3.2 Security Lapisan Transport (Transport Layer Security) ... 10

(8)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

b. Metode - Metode Identifikasi dan Otentikasi... 13

c. Sistem Single Sign-On (SSO) ... 16

2.5.1 Arsitektur Sistem SSO ... 17

2.6 Produk-Produk SSO ……….. 19

2.6.1 Pemilihan Produk SSO ... 19

2.7 Java Open Single Sign-On (JOSSO) ... 21

2.7.1 Fitur Utama JOSSO ... 22

2.7.1 Arsitektur Sistem JOSSO ... 23

2.8 Sistem Database ... 26

2.8.1 Keunggulan MySQL ... 26

2.8.2 Sistem Server Database MySQL ... 27

BAB III KONFIGURASI JOSSO 3.1 Persiapan Server JOSSO ... 28

3.2 Instalasi Aplikasi Pendukung ... 28

3.3 Instalasi dan Konfigurasi JOSSO ... 31

3.3.1 Instalasi dan Konfigurasi JOSSO Gateway ... 31

3.3.2 Instalasi dan Konfigurasi JOSSO Agent ... 33

3.4 Konfigurasi Database JOSSO ... 38

3.4.1 Pembuatan Skema User dan Role ... 38

3.4.2 Pembuatan Sampel Users dan Roles ... 39

3.4.3 Konfigurasi Identity Store ... 40

(9)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

3.5 Konfigurasi SSL di JOSSO Gateway ... 42

BAB IV IMPLEMENTASI DAN PENGUJIAN JOSSO 4.1 Implementasi Jaringan ... 46

4.2 Implementasi Aplikasi Web tanpa JOSSO ... 47

4.3 Implementasi Aplikasi Web dengan JOSSO ... 48

4.4 Pengujian JOSSO ... 52

4.4.1 Pengujian Aplikasi Web tanpa JOSSO ... 52

4.4.2 Pengujian Aplikasi Web dengan JOSSO ... 55

BAB VI KESIMPULAN DAN SARAN VI.1 Kesimpulan ………... 59

VI.2 Saran ……… 60

DAFTAR PUSTAKA ... 61

LAMPIRAN A : INSTALASI DAN KONFIGURASI APLIKASI

PENDUKUNG

(10)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

DAFTAR GAMBAR

Gambar 2.1 Konsep Sistem Mainframe ... 6

Gambar 2.2 Konsep Dasar Browser Web dan Server Web ... 7

Gambar 2.3 Protokol dan network di dalam model TCP/IP ... 9

Gambar 2.4 Posisi TLS pada lapisan protokol IP ... 11

Gambar 2.5 SSL merupakan lapisan terpisah dalam susunan protokol Internet . 11

Gambar 2.6 Pendekatan sistem SSO ... 17

Gambar 2.7 Arsitektur sistem SSO ... 18

Gambar 2.8 Arsitektur sistem JOSSO ... 24

Gambar 3.1 Aplikasi-aplikasi pendukung dalam sistem JOSSO ... 29

Gambar 3.2 Proses HTTP Request pada Apache dan Tomcat ... 31

Gambar 3.3 Tampilan JOSSO's Deployment Console ... 32

Gambar 3.4 Isi folder dari josso-php ... 34

Gambar 3.5 Aplikasi web sederhana pada JOSSO Agent ... 37

Gambar 3.6 Tampilan JOSSO Gateway ... 37

Gambar 3.7 ER Diagram user dan role... 38

Gambar 3.8 Tampilan JOSSO Gateway yang sudah terintegrasi dengan SSL ... 45

Gambar 4.1 Implementasi jaringan JOSSO ... 46

Gambar 4.2 Isi dari folder Aplikasi Web 1, 2 dan 3 ... 42

Gambar 4.3 Isi dari folder Aplikasi Web JOSSO 1, 2 dan 3... 51

Gambar 4.4 Tampilan login pada Aplikasi Web 1 ... 52

(11)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Gambar 4.6 Tampilan login pada Aplikasi Web 2 ... 53

Gambar 4.7 Tampilan login yang berhasil pada Aplikasi Web 2 ... 54

Gambar 4.8 Tampilan login pada Aplikasi Web 3 ... 54

Gambar 4.9 Tampilan login yang berhasil pada Aplikasi Web 3 ... 55

Gambar 4.10 Tampilan Aplikasi Web JOSSO 1 ... 56

Gambar 4.11 Tampilan JOSSO Gateway ... 56

Gambar 4.12 Tampilan Aplikasi Web JOSSO 1 setelah login berhasil ... 57

Gambar 4.13 Tampilan Aplikasi Web JOSSO 2 ... 57

(12)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

DAFTAR TABEL

Tabel 2.1 Tipe-tipe Otentikasi ... 16

(13)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

DAFTAR KODE

Kode 3.1 Contoh Konfigurasi File josso-cfg.inc ... 37

Kode 3.2 Contoh Konfigurasi File php.ini ... 38

Kode 3.3 Contoh Konfigurasi File josso-gateway-config.xml ... 43

Kode 3.4 Contoh Konfigurasi File josso-gateway-auth.xml ... 44

Kode 3.5 Contoh Konfigurasi File josso-credentials.xml ... 46

Kode 3.6 Contoh Konfigurasi File josso-cfg.inc ... 46

Kode 4.1 Contoh Konfigurasi File josso-cfg.inc ... 54

(14)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

BAB I

PENDAHULUAN

1.1 Latar Belakang

Otentikasi adalah suatu proses untuk menentukan apakah seseorang berhak

mengakses suatu aplikasi web atau tidak. Cara yang paling sederhana adalah dengan

menggunakan proses login, seseorang memasukkan username dan password

(credential) kemudian diotentikasi apakah credential tersebut valid atau tidak, jika

valid maka seseorang tersebut boleh mengakses, jika tidak maka dia tidak boleh

mengakses. Sebagian besar aplikasi web saat ini menggunakan cara tersebut, dengan

berbagai tambahan proses untuk menambah dan menambal aspek keamanan.

Menjadi suatu masalah ketika seorang pengguna memiliki banyak aplikasi

web yang membutuhkan otentikasi. Dia harus menghafal banyak credential,

walaupun banyak orang yang membuat credential yang sama untuk berbagai aplikasi

web. Terdapat masalah lagi jika pengguna membuat satu credential untuk berbagai

aplikasi web, karena pengguna harus memasukkan credential berulang kali. Jadi

misalkan pengguna akan menggunakan email maka dia harus memasukkan

credential, pengguna akan menggunakan FTP maka dia harus memasukkan

credential, penggunakan akan menggunakan forum maka dia harus memasukkan

credential dan begitu seterusnya.

Oleh karena itu sistem Single Sign-On (SSO) ditawarkan sebagai solusi yang

tepat dalam permasalahan ini. Mekanisme dari sistem SSO adalah pengguna hanya

(15)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

tanpa harus melakukan otentikasi yang berulang kali, dan juga pengguna hanya perlu

mengingat satu buah credential saja.

Untuk sistem Single Sign-On yang digunakan adalah JOSSO (Java

Open-source Single Sign-On). JOSSO dapat diintegrasikan dengan sistem database untuk

menyimpan informasi login pengguna atau dikenal dengan istilah ‘credential store’.

Proses otentikasi dari sebuah integrasi sistem harus cepat, sehingga pengguna tidak

terlalu lama menunggu proses pemuatan / loading dari halaman aplikasi web.

1.2 Rumusan Masalah

Adapun rumusan masalah dari tugas akhir ini adalah :

Mengimplementasikan sistem SSO pada web service

Mengembangkan model aplikasi web yang menggunakan SSO

1.3 Tujuan Penelitian

Tugas Akhir ini bertujuan untuk mengimplementasikan sistem Single

Sign-On (SSO) dengan menggunakan aplikasi berbasis Java yakni JOSSO (Java

Open-source Single Sign-On). Applikasi JOSSO ini bertujuan untuk menyederhanakan

informasi login yang digunakan pengguna untuk melakukan login ke beberapa

aplikasi berbasis web.

1.4 Batasan Masalah

Untuk menghindari pembahasan yang meluas maka penulis akan membatasi

(16)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

1. Membahas masalah implementasi sistem SSO menggunakan JOSSO

2. Membahas web server yang digunakan dalam proses implementasi SSO

3. Membahas database yang digunakan untuk menyimpan informasi credential

pengguna

1.5 Metode Penulisan

Metodologi penulisan yang digunakan dalam Tugas Akhir ini adalah :

1. Studi Literatur

Berupa studi kepustakaan dan kajian dari buku-buku teks pendukung.

2. Diskusi

Berupa tanya jawab dengan dosen pembimbing mengenai masalah-masalah

yang timbul selama penulisan Tugas Akhir

3. Perancangan Integrasi Sistem

Perancangan model yang akan digunakan untuk mengintegrasikan sistem,

mulai dari konfigurasi server sampai dengan perancangan halaman-halaman

penghubung.

4. Implementasi

Melakukan implementasi aplikasi berdasarkan studi literatur, studi diskusi,

dan disertai dengan pengujian.

1.6Sistematika Penulisan

Untuk memudahkan pemahaman terhadap Tugas Akhir ini maka penulis

(17)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

BAB I : PENDAHULUAN

Bab ini merupakan gambaran menyeluruh tentang apa yang

diuraikan dalam Tugas Akhir, yaitu pembahasan tentang latar

belakang, tujuan penulisan, batasan masalah, metode

penulisan, dan sistematika penulisan.

BAB II : TEORI PENDUKUNG

Bab ini berisi tentang Teknologi Java, Internet sebagai Sistem

Client-Server, Mekanisme Kerja TCP/IP, Metode - Metode

Identifikasi dan Otentikasi, Sistem Single Sign-On (SSO),

Produk-Produk SSO, Java Open Single Sign-On (JOSSO),

Sistem Database.

BAB III : KONFIGURASI JOSSO

Bab ini membahas tentang instalasi dan konfigurasi JOSSO

beserta aplikasi-aplikasi pendukung.

BAB IV : IMPLEMENTASI DAN PENGUJIAN JOSSO

Bab ini membahas tentang implementasi dan pengujian

terhadap sistem SSO dengan aplikasi JOSSO.

BAB V : KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan dan saran dari aplikasi yang

(18)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

BAB II

TEORI PENDUKUNG

2.1 Teknologi Java

Java adalah suatu teknologi di dunia software komputer, yang merupakan

suatu bahasa pemrograman, dan sekaligus suatu platform. Sebagai bahasa

pemrograman, Java dikenal sebagai bahasa pemrograman tingkat tinggi. Java mudah

dipelajari, terutama bagi programmer yang telah mengenal C/C++. Java merupakan

bahasa pemrograman berorientasi objek yang merupakan paradigma pemrograman

masa depan. Sebagai bahasa pemrograman Java dirancang menjadi handal dan aman.

Java juga dirancang agar dapat dijalankan di semua platform, dan juga dirancang

untuk menghasilkan aplikasi – aplikasi dengan performansi yang terbaik, seperti

aplikasi database Oracle 8i/9i yang core-nya dibangun menggunakan bahasa

pemrograman Java. Sedangkan Java bersifat neutral architecture, karena Java

Compiler yang digunakan untuk mengkompilasi kode program Java dirancang untuk

menghasilkan kode yang netral terhadap semua arsitektur perangkat keras.

Sebagai sebuah platform, Java terdiri atas dua bagian utama, yaitu:

Java Virtual Machine (JVM)

Java Application Programming Interface (Java API)

Sun membagi arsitektur Java membagi tiga bagian, yaitu:

Enterprise Java (J2EE) untuk aplikasi berbasis web, aplikasi sistem tersebar

dengan beraneka ragam klien dengan kompleksitas yang tinggi.

(19)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Micro Java (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya yang

banyak dipakai adalah untuk wireless device / mobile device.

2.2 Internet sebagai Sistem Client-Server

Keuntungan utama dari sistem berbasis client-server adalah bahwa

perangkat keras dan perangkat lunak bisa ditempatkan dimana saja sehingga

pengguna bisa bekerja secara lebih optimal. Dahulu, di zaman komputer mainframe,

komputer mainframe-lah yang menjadi pusat kendali dan mengerjakan semua proses

komputasi. Pengguna berinteraksi dengan sistem mainframe melalui terminal–

terminal yang dibutuhkan secara langsung ke komputer mainframe.

Terminal-terminal ini tidak punya kemampuan pemrosesan sama sekali, dan oleh karena itu

disebut “terminal dungu” (dumb terminal). Terminal dungu tidak lebih dari sekedar

perpanjangan kabel untuk keyboard dan layar monitor, dan hanya berfungsi sebagai

alat untuk memasukkan dan melihat data saja.

(20)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Definisi yang banyak dipergunakan untuk menjelaskan sistem berbasis

client-server adalah sistem yang memisahkan antara tugas-tugas komputasi antara

proses-proses client dan server. Dengan sistem client-server, kekuatan pemrosesan

bisa disebarkan (didistribusikan) ke banyak mesin client dan mesin server yang

terpisah secara fisik (itu sebabnya disebut distributed system).

Misalnya sebuah server web yang mengambil informasi dari database

menampilkan hasilnya pada client dengan menggunakan web browser. Server web

dan database bisa saja ditempatkan pada satu mesin, namun apabila jumlah client

yang melakukan akses ke server semakin banyak dan melebihi kapasitas mesin

server, perangkat lunak database dan server web bisa saja dipisahkan dan

ditempatkan di mesin kedua, ketiga atau bahkan lebih. Dengan begitu pemrosesan

pada sisi server dapat disebarkan ke beberapa mesin, yang memungkinkan efisiensi

komputasi. Begitu pula, dengan cara ini, kapasitas server bisa dikembangkan dan

ditingkatkan sesuai dengan kebutuhan.

Gambar 2.2 Konsep dasar browser web dan server web

Konsep client-server juga lebih cocok ketika dilihat dari arsitektur

n-tier/layer, dimana client-server termasuk ke kategori 2-tier. Pada saat ini,

(21)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Misalkan saja untuk 3-tier akan terdapat layer presentasi, aplikasi, dan layer

database. Contohnya adalah aplikasi berbasis web, dimana layer presentasi memakai

bahasa pemrograman PHP, layer aplikasi memakai Apache sebagai server web, dan

layer database memakai MySQL.

Dari sudut pandang lain, sistem berbasis client-server juga bisa

memanfaatkan browser web untuk meringankan kerja server. Tugas menampilkan

informasi dan menyediakan tampilan pengguna (user interface) tidak perlu dilakukan

secara langsung oleh server, namun diserahkan sepenuhnya kepada browser web.

Dengan hadirnya teknologi pemrograman client-side (bahasa pemrograman yang

dijalankan di sisi client) seperti Javascript dan PHP, maka fungsi–fungsi khusus

seperti pemeriksaan/validasi input bisa dilakukan oleh browser sebelum data

dikirimkan kepada server, sehingga dapat menjamin data yang dikirimkan ke server

tidak keliru. Misalnya untuk memastikan bahwa input yang diisikan oleh pengguna

adalah sebuah angka dapat dilakukan oleh program client-side sehingga nantinya

server tidak perlu lagi memeriksa input tersebut. Hal ini mempercepat kerja server,

karena hanya mengerjakan tugas-tugas yang berguna, dan juga karena program untuk

client hanya menggunakan browser web yang tidak perlu diupdate jika suatu saat

sistem tersebut membutuhkan upgrading.

Jadi, setidaknya dalam teori, sistem berbasis client-server memberikan

keuntungan yang banyak seperti penggunaan sumber data secara lebih efisien,

penyimpanan data terpusat, serta lalu lintas di dalam jaringan menjadi lebih rendah

(22)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

2.3 Mekanisme Kerja TCP/IP

Transfer Control Protocol/Internet Protocol (TCP/IP) pada dasarnya terdiri

dari beberapa protokol yang berbeda, masing-masing dirancang untuk memenuhi

tugas-tugas khusus dalam jaringan yang menggunakan TCP/IP. Berkat prinsip ini,

tugas masing-masing protokol menjadi jelas dan sederhana. Protokol yang satu tidak

perlu mengetahui cara kerja protokol yang lain, sepanjang masih bisa saling

mengirim dan menerima data.

Gambar 2.3 Protokol dan network di dalam model TCP/IP

Oleh karenanya, TCP/IP menjadi protokol komunikasi data yang fleksibel.

Protokol TCP/IP dapat diterapkan dengan mudah di setiap jenis komputer dan

interface jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik

terhadap satu komputer atau jaringan tertentu. Agar TCP/IP dapat berjalan di atas

interface jaringan tertentu, hanya perlu dilakukan perubahan pada protokol yang

berhubungan dengan interface saja.

Model referensi TCP/IP yang ditunjukkan pada Gambar 2.3 menunjukkan

empat lapisan dalam model TCP/IP yaitu: Network Access, Internet/IP, Host to

(23)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

yang berhubungan dengan protokol otentikasi hanya terdapat pada lapisan/layer

Application, Transport dan Internet saja. Pada setiap lapisan tersebut akan dilihat

dari sisi keamanan/security ini dikarenakan sistem otentikasi berhubungan erat

dengan faktor keamanan.

2.3.1 Security Lapisan Aplikasi (Application Layer Security)

Implementasi keamanan pada lapisan aplikasi adalah yang paling mudah

dan sederhana, jika komunikasi internet melibatkan dua pihak, seperti kasus

komunikasi email dan telnet. Pengirim dan penerima mempunyai kesepakatan untuk

menggunakan protokol yang sama dan jenis layanan keamanan yang diinginkan.

Pada bagian lapisan ini terdapat 2 protokol yang digunakan, yaitu PGP (Pretty Good

Privacy) dan SSH (secure shell).

2.3.2 Security Lapisan Transport (Transport Layer Security)

Transport Layer Security (TLS) berada antara lapisan aplikasi dan lapisan

transport. Pada Gambar 2.4 diperlihatkan, bahwa TLS berada diantara lapisan

protokol HTTP (aplikasi) dan protokol TCP (transport). Dengan demikian dapat

dinyatakan bahwa lapisan aplikasi dalam hal ini HTTP menggunakan TLS dan TLS

menggunakan layanan dari lapisan transport dalam hal ini TCP untuk membawa

(24)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Gambar 2.4 Posisi TLS pada layer-layer protokol IP

TLS dirancang untuk menyediakan keamanan pada lapisan transport. TLS

diperoleh dari suatu protokol keamanan yang disebut dengan SSL (Secure Sockets

Layer) yang dirancang oleh Netscape guna menjamin keamanan WWW. TLS adalah

bentuk lain dari SSL, yang dirancang oleh IETF (Internet Engineering Task Force)

untuk transaksi di internet seperti ditunjukkan oleh Gambar 2.5.

Gambar 2.5 SSL merupakan lapisan terpisah dalam susunan protokol

(25)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

SSL merupakan Protokol berlapis. Dalam tiap lapisannya, sebuah data

terdiri dari panjang, deskripsi dan isi. SSL mengambil data untuk dikirimkan,

dipecahkan kedalam blok-blok yang teratur, kemudian dikompres jika perlu,

menerapkan MAC, dienkripsi, dan hasilnya dikirimkan. Di tempat tujuan, data

didekripsi, verifikasi, dekompres, dan disusun kembali. Hasilnya dikirimkan ke klien

di atasnya. Cara kerja SSL dapat kita lihat dengan tahapan – tahapan berikut ini:

1. Klien membentuk koneksi awal ke server dan meminta koneksi SSL.

2. Bila server yang dihubungi telah dikonfigurasi dengan benar, maka server ini

akan mengirimkan public key miliknya kepada klien.

3. Kien membandingkan sertifikat dari server ke basisdata trusted authorities. Bila

sertifikat ini terdaftar, artinya klien mempercayai server tersebut dan akan maju

kelangkah 4. Bila sertifikat itu terdaftar, maka pemakai harus menambahkan

sertifikat ini ke trusted database sebelum maju ke langkah 4.

4. Klien menggunakan public key yang didapatnya untuk men-enkrip sesi dan

mengirimkan session key ke server. Bila server meminta sertifikat klien di

langkah 2, maka klien harus mengirimkannya sekarang.

5. Bila server dikonfigurasi untuk menerima sertifikat, maka server akan

membandingkan sertifikat yang diterimanya dengan basisdata trusted

authorities dan akan menerima atau menolak koneksi yang diminta.

Bila kondisi ditolak, suatu pesan kegagalan akan dikirimkan ke klien. Bila

koneksi diterima, atau bila server tidak dikonfigurasi untuk menerima sertifikat,

(26)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

milik server dan mengirimkan pesan berhasil ke klien yang sekaligus akan membuka

suatu secure data chanel.

2.3.3 Security Lapisan IP (IPSec)

IP Security (IPSec) merupakan sekumpulan protokol yang dirancang oleh

IETF (Internet Engineering Task Force ) untuk menyediakan layanan keamanan bagi

paket data yang dibawa di internet. IPSec tidak didefinisikan untuk menggunakan

berbagai metoda enkripsi atau otentikasi yang spesifik. Tetapi IPSec menyediakan

sebuah framework dan sebuah mekanisme. IPSec mendefinisikan dua protokol yang

digunakan pada IP (lapisan network) seperti : Protokol Authentication Header (AH)

dan protokol Encapsulating Security Payload (ESP).

2.4 Metode - Metode Identifikasi dan Otentikasi

Elemen interface pengguna yang pertama kali ditemui kebanyakan subjek

ketika mengakses sistem informasi adalah identifikasi dan otentikasi. Tahap

identifikasi memperkenankan subjek mengklaim sebagai entitas tertentu dengan

menunjukkan bukti-bukti identitas. Bukti-bukti tersebut dapat sesederhana ID

pengguna atau nomer PIN, atau yang lebih kompleks seperti atribut fisik. Setelah

subjek mengklaim suatu identitas, sistem memvalidasi apakah pengguna tersebut

terdaftar dalam database pengguna dan membuktikan bahwa subjek tesebut adalah

benar-benar sebagai entitas yang diklaimnya.

Tahap otentikasi meminta subjek menujukkan informasi tambahan yang

(27)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

tahap ini sering disebut dengan otentikasi dua faktor, yang memberikan proteksi

terhadap subjek yang tidak memiliki otoritas untuk mengakses sistem. Setelah subjek

diotentikasi, sistem kontrol akses mengevaluasi hak dan izin subjek untuk

mengabulkan atau menolak permintaan akses terhadap objek. Tahap ini disebut

dengan tahap otorisasi.

Authentication Type Description Examples

Type 1

Smart card, token device Biometrics-fingerprint, palm print, retina/iris pattern, voice pattern.

Tabel 2.1 Tipe-tipe Otentikasi

Ada tiga kategori/tipe umum dari informasi otentikasi. Praktek pengamanan

yang baik biasanya membuat tahap identifikasi dan otentikasinya memerlukan input

setidaknya dari dua tipe berbeda. Tiga tipe umum data otentikasi dijelaskan dalam

Tabel 2.1.

Tipe otentikasi yang paling umum dan paling mudah untuk

diimplementasikan adalah otentikasi tipe 1. Yang dilakukan adalah meminta subjek

membuat password, passphrase, atau nomer PIN. Alternatif lain adalah

menyediakannya untuk pengguna. Kesulitan dalam otentikasi tipe 1 adalah perlunya

mendorong subjek untuk membuat frase yang sangat sulit diterka oleh orang lain,

namun tidak terlalu rumit sehingga sulit untuk diingat. Password (frase atau PIN)

(28)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

terjadi bila administrator terlalu sering memerlukan penggantian password sehingga

pengguna kesulitan untuk mengingat password terbaru. Jadi, yang disarankan adalah

menjaga password secara rahasia dan aman. Aturan-aturan berikut ini adalah

petunjuk yang baik untuk membuat password yang aman.

1. Password setidaknya memiliki panjang 6 karakter.

2. Password setidaknya mengandung sebuah angka atau karakter tanda baca.

3. Tidak menggunakan kosakata atau kombinasi kosakata.

4. Tidak menggunakan data pribadi, seperti tanggal kelahiran, nama anggota

keluarga atau binatang peliharaan, atau lagu atau hobi favorit.

5. Tidak sesekali menuliskan password.

6. Membuat password yang mudah diingat tetapi sulit diterka.

Data otentikasi tipe 2 lebih rumit untuk dilakukan karena subjek perlu

membawa suatu alat atau sejenisnya. Alat tersebut umumnya perangkat elektronik

yang menghasilkan suatu nilai yang bersifat sensitif terhadap waktu atau suatu

jawaban untuk diinput. Meskipun otentikasi tipe 2 lebih rumit, tipe ini hampir selalu

lebih aman dibandingkan dengan otentikasi tipe 1.

Otentikasi tipe 3, atau biometrik adalah yang paling canggih. Biometrik

menggambarkan pendeteksian dan pengklasifikasian dari atribut fisik. Terdapat

banyak teknik biometrik yang berbeda, diantaranya :

• Pembacaan sidik jari/telapak tangan

• Geometri tangan

• Pembacaan retina/iris

(29)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009. • Dinamika tanda tangan

Karena kerumitannya, biometrik adalah tipe otentikasi yang paling mahal

untuk diimplementasikan. Tipe ini juga lebih sulit untuk dipelihara karena sifat

ketidak-sempurnaan dari analisis biometrik. Dianjurkan untuk berhati-hati beberapa

masalah-masalah utama dari error-error biometrik. Pertama, sistem mungkin

menolak subjek yang memiliki otoritas. Ukuran kesalahan semacam ini disebut

dengan false rejection rate (FRR). Di sisi lain, sistem biometrik mungkin menerima

subjek yang salah. Ukuran kesalahan semacam ini disebut dengan false acception

rate (FAR). Yang menjadi masalah adalah ketika sensitifitas sistem biometrik diatur

untuk menurunkan FRR, maka FAR meningkat. Begitu juga berlaku sebaliknya.

Posisi pengaturan yang terbaik adalah bila nilai FRR dan FAR seimbang, ini terjadi

pada crossover error rate (CER).

2.5 Sistem Single Sign-On (SSO)

SSO merupakan sebuah teknik dimana pengguna melakukan otentikasi

hanya sekali dan otomatis login ke Service Provider (SP) yang diperlukan, tanpa

memerlukan interaksi yang manual. Sistem SSO ini dapat meningkatkan kegunaan

jaringan secara keseluruhan dan pada saat yang sama dapat memusatkan pengelolaan

dari parameter sistem yang relevan. Beberapa arsitektur dari sistem SSO telah

muncul, masing-masing dengan berbagai keunggulan dan infastruktur yang berbeda.

Sistem Single Sign-On (SSO) menghindari login ganda dengan cara

mengidentifikasi subjek secara ketat dan memperkenankan informasi otentikasi

(30)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

lebih menyukai SSO, namun Administrator memiliki banyak tugas tambahan yang

harus dilakukan. Perlu perhatian ekstra untuk menjamin bukti-bukti otentikasi tidak

tersebar dan tidak disadap ketika melintasi jaringan. Tidak penting untuk memahami

setiap sistem SSO secara detail. Konsep-konsep penting dan kesulitan-kesulitannya

cukup umum bagi semua produk SSO.

2.5.1 Arsitektur Sistem SSO

Gambar 2.6 Pendekatan sistem SSO

Solusi sistem SSO didasarkan pada salah satu dari dua tingkat pendekatan:

pendekatan script dan pendekatan agent. Pendekatan agent lebih digunakan dalam

Tugas Akhir ini karena dianggap lebih cocok untuk aplikasi berbasis web atau

service provider (SP). Gambar 2.6 menunjukkan pembagian dari pendekatan sistem

SSO.

Agent merupakan sebuah program kecil yang berjalan pada tiap-tiap web

server. Agent ini membantu mengkoordinir aliran kerja dari SSO dalam hal

otentikasi pengguna dan penanganan sesi. Solusi dari arsitektur sistem SSO

(31)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

yang berada di web server /SP dan sebuah server SSO yang berdedikasi yang mana

akan dijelaskan berikut ini:

Agent: Sebuah agent akan menterjemahkan setiap permintaan HTTP yang

masuk ke web server. Hanya ada satu agent di tiap-tiap web server, yang mana

host bagi aplikasi/SP. Agent tersebut akan berinteraksi dengan browser klien

pada sisi pengguna, dan dengan server SSO pada sisi SP.

SSO server: Server SSO menggunakan cookies temporer (sementara) untuk

menyediakan fungsi manajemen sesi. Sebuah cookies terdiri dari informasi

seperti user-id, session-id, session creation time, session expiration time dan

lain-lain.

(32)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

2.6 Produk-Produk SSO

Produk-produk SSO yang berbasis open source yang umum digunakan saat

ini adalah sebagai berikut:

CAS (Central Authentication Service)

CAS adalah sebuah framework untuk Single Sign-On yang dibuat dengan

menggunakan bahasa Java. Konsep kerja CAS sebenarnya menggunakan Ticket

Granting dimana ketika pengguna melakukan login, maka pengguna akan diberikan

ticket (dalam hal ini tersimpan dalam cookies) yang nantinya akan digunakan untuk

melakukan otentikasi pada setiap aplikasi web. Jadi di setiap aplikasi web akan

dilakukan pengecekan dari ticket yang telah diberikan oleh CAS tersebut.

OpenSSO (Open Single Sign-On)

OpenSSO adalah sebuah infrastruktur yang mendukung layanan berbasis

identitas, dan implementasi solusi dari Single Sign on (SSO) transparan sebagai

komponen keamanan dalam infrastruktur jaringan. OpenSSO ini berbasis pada solusi

Identity Management yang dikembangkan oleh Sun.

JOSSO (Java Open Single Sign-On)

JOSSO adalah sebuah infrastruktur SSO berbasis J2EE dan opensource

yang bertujuan untuk menyediakan solusi bagi sentralisasi, netral platform, otorisasi

dan otentikasi pengguna.

Berikut ini merupakan perbandingan keunggulan dan kekurangan beberapa

(33)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

CAS OpenSSO JOSSO

Terdapat banyak client

libraries untuk membantu

mengintegrasikan CAS dengan aplikasi server.

•Tampilan pada halaman login dapat diganti.

•Agent dapat ditempatkan ke berbagai aplikasi

server seperti: Apache,

Sun Java System Web

Server, Microsoft IIS,

Domino.

•Konfigurasi dapat dilakukan dengan

menulis otentikasi modul

•Keamanan layanan web menggunakan SAML

Tabel 2.2 Perbandingan keunggulan beberapa produk SSO

CAS OpenSSO JOSSO

•Implementasi dasar hanya meliputi HTTPS.

•Tidak mendukung untuk beberapa aplikasi server tertentu.

Tabel 2.3 Perbandingan kekurangan beberapa produk SSO

Dari ketiga solusi SSO opensource tersebut dapat ditarik kesimpulan

bagaimana melakukan pemilihan SSO yang tepat sesuai dengan kebutuhan adalah

(34)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009. • CAS merupakan pilihan tepat jika:

- menggunakan infrastruktur berbasis Spring dengan Acegi

- menggunakan manajemen credential sederhana berbasis DB

OpenSSO merupakan pilihan tepat jika:

- dibutuhkan dukungan terhadap lingkungan yang terpisah

- diperlukan otentikasi menggunakan SSL

- ingin untuk menggunakan seluruh fitur dari Sun Java System Access Manager

JOSSO merupakan pilihan tepat jika:

- mendukung aplikasi server tertentu seperti Tomcat, Jboss dll

Berdasarkan kesimpulan tersebut maka penulis mengangkat JOSSO sebagai

solusi SSO dalam Tugas Akhir ini karena JOSSO merupakan platform SSO yang

sederhana dan kemudahan dalam melakukan konfigurasinya.

2.6 Java Open Single Sign-On (JOSSO)

Java Open Single Sign-On (JOSSO) adalah sebuah infrasturktur SSO

berbasis J2EE dan opensource yang bertujuan untuk menyediakan solusi bagi

sentralisasi, netral platform, otorisasi dan otentikasi pengguna. JOSSO bisa

dikonfigurasi untuk digunakan sebagai contoh skema otentikasi berbasis sertifikat

(certificate-based authentication scheme) dengan memperoleh sertifikat pengguna

X.509 dari database mengunakan JDBC (Java Database Connectivity). JOSSO

menggunakan layanan web untuk menyatakan identitas dari pengguna. Versi JOSSO

(35)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

2.6.1 Fitur Utama JOSSO

Berikut ini merupakan berbagai fitur utama yang ada pada sistem JOSSO:

Menggunakan J2EE Transparent Single Sign-On dengan cross domain/cross

organization.

Dapat dijalankan pada Apache Tomcat.

Dapat dijalankan pada aplikasi server JBoss.

Dapat dijalankan pada aplikasi server Apache Geronimo.

Dapat diintegrasikan dengan Spring Acegi.

Menyediakan identitas informasi kepada aplikasi web dan EJB (Enterprise

Java Bean) melalui masing-masing pada Servlet standar dan EJB Security

API.

Mendukung Strong Authentication menggunakan sertifikat klien X.509.

Mendukung LDAP (Lightweight Directory Access Protocol) untuk

menyimpan informasi dan credential pengguna.

Mendukung database untuk menyimpan informasi dan credential pengguna.

Menyediakan klien API (Application Programming interface) bagi PHP

yang dapat membangun aplikasi PHP yang mendukung SSO.

Menyediakan klien API bagi Microsoft ASP yang dapat membangun aplikasi

ASP yang mendukung SSO.

Dapat dijalankan pada kontainer Apache Pluto Portlet.

Berdasarkan standard: JAAS (Java Authentication and Authorization

(36)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009. Struts/JSP, J2EE.

• 100% Java.

2.6.2 Arsitektur Sistem JOSSO

Josso terdiri dari tiga unsur utama:

SSO Gateway: Ini merupakan server SSO atau Identity Provider yang

berfungsi menyediakan layanan otentikasi kepada pengguna yang

membutuhkan otentikasi melalui aplikasi partner.

SSO Agent: Ini mewakili klien dari Gateway SSO yang mana permintaan

otentikasi diserahkan kepada pengguna dan mengelola seluruh aliran

otentikasi pengguna. Agent SSO memvalidasi SSO sesi dan memperoleh

informasi pengguna terkait dengan layanan web SSO Gateway menggunakan

protokol SOAP.

Partner Application: Ini merupakan sebuah aplikasi web atau Service

Provider yang menggunakan layanan Gateway SSO untuk melakukan

(37)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Gambar 2.8 Arsitektur sistem JOSSO

Berikut ini merupakan aliran otentikasi dari Aplikasi Web yang terintegrasi

dengan SSO melalui JOSSO berdasarkan Gambar 2.8:

1. Seorang pengguna meminta sebuah protected resource berupa Aplikasi Web

1, 2 dan 3 yang dijalankan oleh Apache2 pada server JOSSO Agent.

2. JOSSO Agent yang memproteksi Aplikasi Web akan menginterupsi

permintaan pengguna dan, karena tidak dapat diidentifikasi maka pengguna

akan diarahkan kembali kepada form JOSSO pada server JOSSO Gateway

(38)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

3. Pengguna memasukkan credentialnya, hal ini tergantung kepada skema

otentikasi yang dipilih, pengguna boleh meminta sepasang

username/password atau sebuah X.509 Client Certificate.

4. Pada server JOSSO Gateway akan diproses form submission, kemudian

memuatinya dengan credential pengguna dari tempat penyimpanan

konfigurasi yaitu MySQL dan memeriksa keabsahannya.

5. Jika credential-nya sah, maka pengguna akan diotentikasi dan sebuah bukti

sesi SSO dihasilkan, kemudian menyimpan sesi tersebut ke dalam session

store. Pengguna kemudian akan diarahkan kembali ke protected resource

yang diminta pada awal proses.

6. JOSSO Agent melindungi aplikasi web ketika menginterupsi permintaan, dan

menggunakan module SSO Gateway JAAS Login, kemudian memeriksa

keabsahan sesi dan mengambil subjek otentikasi dari Gateway SSO

menggunakan SOAP.

7. JOSSO Gateway mengambil sesi penyedia identifikasi dari session store dan

memperoleh informasi pengguna yang terkait dari identity store.

8. JOSSO Agent memperkenalkan kembali subjek otentikasi oleh layanan web

Gateway SSO melalui HTTP Request dan menanganinya sampai ke target

(39)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

2.7 Sistem Database

Sistem database yang digunakan pada tugas akhir ini adalah MySQL.

MySQL adalah sebuah server database SQL multiuser dan multi-threaded. SQL

sendiri adalah salah satu bahasa database yang paling populer di dunia.

Implementasi program server database ini adalah program daemon 'mysqld' dan

beberapa program lain serta beberapa pustaka. MySQL dibuat oleh TcX dan telah

dipercaya mengelola sistem dengan 40 buah database berisi 10,000 tabel dan 500 di

antaranya memiliki 7 juta baris (kira-kira 100 gigabyte data). Database ini dibuat

untuk keperluan sistem database yang cepat, handal dan mudah digunakan.

Walaupun memiliki kemampuan yang cukup baik, MySQL untuk sistem operasi

Unix bersifat freeware, dan terdapat versi shareware untuk sistem operasi windows.

2.7.1 Keunggulan MySQL

Berikut ini merupakan berbagai keunggulan yang ada pada MySQL sebagai

database JOSSO:

MySQL merupakan program yang multi-threaded, sehingga dapat dipasang pada

server yang memiliki multi-CPU.

• Didukung program-program umum seperti C, C++, Java, Perl, PHP, Python, TCL

APIs dan lain sebagainya.

Bekerja pada berbagai platform. (tersedia berbagai versi untuk berbagai sistem

operasi).

• Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi

(40)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Memiliki sistem sekuriti yang cukup baik dengan verifikasi host. Mendukung

ODBC untuk sistem operasi Microsoft Windows.

Mendukung record yang memiliki kolom dengan panjang tetap atau panjang

bervariasi.

• dan masih banyak keunggulan lainnya.

2.7.2 Sistem Server Database MySQL

Sistem database MySQL memiliki sistem keamanan dengan tiga verifikasi

yaitu user(name), password dan host. Verifikasi host memungkinkan untuk

membuka sekuriti di 'localhost', tetapi tertutup bagi host lain (bekerja di lokal

komputer). Sistem sekuriti ini ada di dalam database MySQl dan pada tabel

pengguna. Proteksi juga dapat dilakukan terhadap database, tabel, hingga kolom

(41)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

BAB III

KONFIGURASI JOSSO

3.1 Persiapan Server JOSSO

Berikut ini merupakan spesifikasi komputer server yang digunakan dalam

melakukan konfigurasi JOSSO:

• Sistem Operasi : Opensuse 11.1

Prosesor : AMD Turion X2 dengan kecepatan 2 GHz

• RAM : 1,5 GB DDR2

• Hard Disk : 160 GB

• LAN Card : 1 Gbps

Seharusnya ada 3 buah server yang digunakan yaitu: 1 server sebagai JOSSO

Agent, 1 server sebagai JOSSO Gateway, dan 1 server lagi sebagai Sistem Database,

tetapi karena hal ini hanya sebagai pengujian implementasi maka server yang

digunakan hanya 2 buah saja yaitu: 1 buah server untuk JOSSO Agent dan 1 buah

server untuk JOSSO Gateway dan database Mysql. Untuk sistem operasi yang

digunakan di server adalah Distribusi Linux Opensuse 11.1 yang sudah terintegrasi

(42)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

3.2 Instalasi Aplikasi Pendukung

Dalam menginstall dan menkonfigurasi JOSSO diperlukan berbagai macam

aplikasi pendukung. Adapun aplikasi-aplikasi pendukung tersebut adalah:

• Java SE Development Kit 6 Update 5 (JDK 1.6.0)

• Apache HTTP Server 2.2.10

• OpenSSL 0.9.8

• Apache Tomcat 6.0.18

• Tomcat Connectors 1.2.26 (mod_jk.so)

• MySQL Community Server 5.0.67

Driver JDBC untuk MySQL (-5.1.7)

• PHP 5.2.6

Java SE mempunyai peran sebagai platform bagi klien dan server dalam

menjalankan berbagai aplikasi berbasis Java. Sedangkan sistem database yang

digunakan adalah MySQL yang mana telah terintegrasi dengan

mysql-connector-java, sehingga dapat terhubung dengan database berbasis Java. Untuk lebih jelas

mengenai aplikasi pendukung yang digunakan dalam JOSSO ini dapat dilihat pada

(43)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Gambar 3.1 Aplikasi-aplikasi pendukung dalam sistem JOSSO

Apache dan Tomcat mempunyai peran yang penting dalam membangun

suatu sistem SSO dengan JOSSO. Peran penting yang dimaksud di sini adalah

Apache merupakan tempat konfigurasi dari JOSSO Agent sedangkan Tomcat

merupakan tempat konfigurasi dari JOSSO Gateway.

Tomcat dapat berjalan sebagai sebuah server yang berdiri sendiri

(standalone server), meskipun dalam sebuah lingkungan produksi, Tomcat sering

digunakan sebagai Java servlet / JSP container bagi server Apache HTTP atau pada

Microsoft IIS. Dalam kombinasi ini, Tomcat melakukan eksekusi terhadap Java

servlet dan JSP, sedangkan Apache menjalankan halaman statis HTML dan

melakukan fungsi sebagai server yakni CGI, PHP, SSI, dll.

Berikut ini merupakan alasan Tomcat jarang digunakan sebagai sebuah

standalone server:

(44)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009. • Tomcat tidak dapat dikonfigurasi seperti Apache

• Tomcat tidak sekuat/sesempurna seperti Apache

• Tomcat tidak perlu memiliki banyak alamat situs, untuk keperluan

fungsionalitas hanya ditemuka n dalam modul Apache (seperti Perl, PHP, dll).

Berikut ini merupakan proses untuk menjalankan Tomcat dengan Apache

secara bersama:

• Apache memerlukan sebuah module “adapter”, yang mana menggunakan

sebuah protokol tertentu, seperti Apache JServ Protocol (AJP) v1.2, v1.3,

atau WARP v1.0, untuk berkomunikasi dengan Tomcat melalui TCP port

(port 8009 sebagai konfigurasi standard).

Ketika Apache menerima sebuah HTTP Request, maka Apache akan

memeriksa permintaan tersebut. Jika permintaan tersebut kepunyaan Tomcat,

maka adapter kemudian akan mengambil permintaan dan meneruskannya ke

(45)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Gambar 3.2 Proses HTTP Request pada Apache dan Tomcat

Ada beberapa modul adapter, seperti modul Apache JServ Protocol (AJP)

v1.2 "JServ", modul AJP v1.3 "JK 1.2" dan modul "JK 2". Modul AJP v1.3 "JK 1.2"

(mod_jk.so) akan digunakan dalam Tugas Akhir ini. Adapun langkah-langkah

instalasi dan konfigurasi semua aplikasi pendukung dapat dilihat di lampiran.

3.3 Instalasi dan Konfigurasi JOSSO

3.3.1 Instalasi dan Konfigurasi JOSSO Gateway

Sebelum menginstall JOSSO Gateway terlebih dahulu harus diperhatikan

aplikasi pendukung dan aplikasi JOSSO itu sendiri. Berikut merupakan beberapa

aplikasi wajib yang harus diinstall.

6. JDK 1.6.0

7. Apache Tomcat 6.0.18

(46)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Untuk JOSSO 1.8 Binaries dapat diunduh di situs resmi JOSSO yaitu

aplikasi JOSSO adalah melakukan ekstrak pada paket JOSSO tadi. Setelah seluruh

paket diekstrak, maka JOSSO's Deployment Console dapat dijalankan. Sebelum

menjalankan console, pastikan terlebih dahulu variable JAVA_HOME Environment

mengarah ke folder instalasi JDK. Berikut ini adalah perintahnya:

# export JAVA_HOME=/usr/lib/jvm/jre

# cd JOSSO-1.8.0/bin

# ./josso-gsh

Setelah perintah di atas dieksekusi maka akan keluar tampilan berikut:

Gambar 3.3 Tampilan JOSSO's Deployment Console.

JOSSO's Deployment Console akan melakukan seluruh proses instalasi

(47)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

platform komponen SSO. Semua aktifitas pada console akan direkam melalui sebuah

file log yang disimpan pada josso-1.8.0/logs/.

Selanjutnya untuk menginstal JOSSO Gateway pada folder Tomcat,

jalankan perintah gateway install berikut:

# gateway install --target "/opt/apache-tomcat-6.0.18" --platform

tc60

Setelah semua proses instalasi JOSSO Gateway pada $TOMCAT_HOME

selesai maka akan ditercipta folder-folder JOSSO berikut:

$ TOMCAT_HOME/lib/josso- * files

$ TOMCAT_HOME / webapps / josso folder

3.3.2. Instalasi dan Konfigurasi JOSSO Agent

Aplikasi-aplikasi berikut harus dipersiapkan terlebih dahulu sebelum

menginstall dan menkonfigurasi JOSSO Agent:

• Apache HTTP Server 2.2.10

• PHP 5.2.6 dengan modul-modul sebagai berikut:

• PHP GD

• PHP GetText

PHP IMAP expansions

(48)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Buka file JOSSO yang terletak pada

/home/syamsi/Documents/josso-1.8.0/dist/agents/src/josso-php-agent-1.8.0-.zip. Ekstrak file tersebut ke folder

/home/syamsi/Documents sehingga akan muncul folder /josso-php dengan isi sebagai

berikut:

Gambar 3.4 Isi folder dari josso-php

Kemudian salin folder josso-php-partnerapp ke DocumentRoot Apache

HTTP Server. Selanjutnya akan tercipta folder baru di DocumentRoot Apache yakni:

srv/www/httdocs/josso-php-partnerapp, sehingga alamat berikut dapat diakses di web

browser: http://localhost/josso-php-partnerapp/josso-security-check.php

Langkah selanjutnya adalah mengkonfigurasi JOSSO Agent dengan PHP.

Caranya adalah dengan membuat folder baru untuk PHP dan menyalin folder

josso-php-inc dengan cara menjalankan perintah berikut:

.

# mkdir /opt/php/includes

(49)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Buka file josso-cfg.inc yang terletak pada

/opt/php/includes/josso-php-inc/josso-cfg.inc dan edit file tersebut. Hasil modifikasi dapat ditunjukkan pada Kode

3.1.

// Josso agent configuration

$josso_gatewayLoginUrl =

'http://localhost:8080/josso/signon/login.do';

$josso_gatewayLogoutUrl =

'http://localhost:8080/josso/signon/logout.do';

// WS client configuration :

$josso_endpoint = 'http://localhost:8080';

// This could be also /, it points to the path where JOSSO code is

found, for example the josso-security-check.php page.

$josso_agentBasecode = "/josso-php-partnerapp";

Kode 3.1 Contoh Konfigurasi File josso-cfg.inc

Berikut ini adalah penjelasan dari konfigurasi josso-cfg.inc:

The Gateway Login URL, mewakili URL dimana pengguna akan diarahkan

ke akses protected resource, sehingga pengguna memiliki kesempatan untuk

melakukan otentikasi sendiri.

The Gateway Logout URL, mewakili URL dimana pengguna akan

diarahkan pada permintaan logout.

The Gateway endpoint, mewakili alamat dari layanan web JOSSO.

The PHP Agent code base, merupakan target dari kode JOSSO Agent,

contohnya:

(50)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Kemudian edit file php.ini yang ada di $PHP_HOME yang dalam hal ini

terletak pada /etc/php5/apache2/php.ini. Hasil modifikasi dapat ditunjukkan pada

Kode 3.2.

...

include_path = ".:/opt/php/includes"

auto_prepend_file = "josso-php-inc/josso.php"

...

Kode 3.2 Contoh Konfigurasi File php.ini

Selanjutnya buka file index.php JOSSO yang terletak pada

/home/syamsi/Documents/josso-1.8.0/dist/samples/apps/josso-partner-php-1.8.0-.zip,

ekstrak file tersebut ke folder DocumentRoot Apache HTTP Server untuk

menggantikan file index.php yang telah ada. Setelah instalasi selesai, folder

/home/syamsi/Documents/josso-1.8.0 dan /home/syamsi/Documents/josso-php dapat

dihapus, serta Apache HTTP Server direstart ulang dengan menjalankan perintah

berikut:

# /etc/init.d/apache2 restart

Untuk menguji apakah JOSSO Agent berhasil diinstall adalah dengan

mengakses link berikut:

(51)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Gambar 3.5 Aplikasi web sederhana pada JOSSO Agent

Jika diklik pada tulisan “here” maka akan diarahkan ke JOSSO Gateway

seperti ditunjukkan pada Gambar 3.6.

(52)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

3.4 Konfigurasi Database JOSSO

3.4.1 Pembuatan Skema Pengguna dan Role

Dalam pembuatan skema pengguna dan role, hal pertama yang harus

dilakukan adalah pembuatan table untuk pengguna dan role. Ada 4 macam table

yang akan dibuat diantaranya adalah:

JOSSO_USER : berisi semua pengguna yang akan melakukan sign-on.

JOSSO_ROLE : berisi semua role bagi pengguna yang terhubung

JOSSO_USER_ROLE : berisi role yang berhubungan dengan setiap

pengguna.

• JOSSO_USER_PROPERTY : berisi tambahan properti bagi pengguna,

seperti data pribadi, dan lain-lain.

Adapun ER Diagram untuk skema pengguna dan role dapat dilihat pada

gambar berikut:

(53)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Pembuatan skrip DDL ( Data Definition Language ) SQL berdasarkan

skema ER Diagram pengguna dan role seperti pada Gambar 3.7, kemudian skrip

DDL tersebut disimpan dengan nama josso-ddl.sql dan dapat dilihat di lampiran.

Selanjutnya skrip DDL tersebut dieksekusi ke dalam database MySQL.

3.4.2 Pembuatan Sampel Pengguna dan Role

Setelah selesai membuat skema database, maka langkah selanjutnya adalah

menambahkan dokumen sampel pengguna dan role. Sehingga pengguna tersebut

dapat melakukan sign-on ke JOSSO. Ada tiga role yang akan dibuat yaitu:

• role1

• role2

• role3

Selanjutnya adalah pembuatan dua pengguna dan menghubungkannya ke

role yang telah dibuat:

• user1: merupakan bagian dari ‘role1’ dan ‘role2’.

• user2: merupakan bagian dari ‘role3’.

Langkah selanjutnya menghubungkan tiga properti kedua pengguna yang

baru saja dibuat:

user.name: tempat menyimpan first name untuk pengguna.

(54)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

• user.registrationDate: tempat menyimpan pengguna yang telah didaftarkan.

Selanjutnya pembuatan skrip DML (Data Manipulation Language) yang

kemudian akan disimpan sebagai josso-users.sql dan dapat dilihat pada lampiran.

3.4.3 Konfigurasi Identity Store

Untuk menghubungkan database JOSSO dengan MySQL diperlukan driver

JDBC. Berikut ini merupakan cara menginstal driver JDBC untuk MySQL:

• Unduh aplikasi JDBC Driver untuk MySQL di

Ekstrak file yang ada di dalam file zip yaitu

mysql-connector-java-5.1.7-bin.jar, ke folder $ TOMCAT_HOME / webapps / josso / WEB-INF / lib .

Tempat penyimpanan konfigurasi database yang digunakan untuk

menyimpan identitas informasi pengguna JOSSO terletak pada file yaitu:

josso-gateway-db-stores.xml. Hasil modifikasi dapat ditunjukkan pada Kode 3.3.

...

<db-istore:jdbc-store

id="josso-identity-store"

driverName="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://localhost:3306/jossodb"

connectionName="root"

connectionPassword="qwerty"

userQueryString="SELECT LOGIN AS NAME FROM JOSSO_USER

WHERE LOGIN = ?"

rolesQueryString="SELECT NAME AS ROLE FROM

JOSSO_USER_ROLE WHERE LOGIN = ?"

credentialsQueryString="SELECT LOGIN AS USERNAME,

(55)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

userPropertiesQueryString="SELECT NAME, VALUE FROM

JOSSO_USER_PROPERTY WHERE LOGIN = ?"

resetCredentialDml="UPDATE JOSSO_USER SET PASSWORD = ?

WHERE LOGIN = ?"

relayCredentialQueryString="SELECT LOGIN FROM JOSSO_USER

WHERE #?# = ?"/>

...

Kode 3.3 Contoh Konfigurasi File josso-gateway-db-stores.xml

Sedangkan untuk konfigurasi dalam menentukan database yang akan

digunakan adalah terletak pada file josso-gateway-config.xml. File tersebut diedit

dengan menjadikan josso-gateway-db-stores sebagai tempat database bagi pengguna

JOSSO. Hasil modifikasi dapat ditunjukkan pada Kode 3.4.

...

<!-- Identity, Session and Assertion Stores configuration -->

<s:import resource="josso-gateway-db-stores.xml" />

<!--

<s:import resource="josso-gateway-memory-stores.xml" />

<s:import resource="josso-gateway-stores.xml" />

<s:import resource="josso-gateway-ldap-stores.xml" />

-->

...

Kode 3.4 Contoh Konfigurasi File josso-gateway-config.xml

3.4.4 Konfigurasi Skema Basic Authentication

Setelah melakukan konfigurasi dari identity store, tahap selanjutnya adalah

melakukan konfigurasi skema basic authentication. Dalam kasus ini properti has

Algorithm dan hasEnconding akan dihapus dari konfigurasi standard, karena

(56)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Konfigurasi skema otentikasi dapat ditemukan pada file josso-gateway-auth.xml.

Hasil modifikasi dapat ditunjukkan pada Kode 3.5.

...

<basic-authscheme:basic-auth-scheme

id="josso-basic-authentication"

ignorePasswordCase="false"

ignoreUserCase="false">

<basic-authscheme:credentialStore>

<s:ref bean="josso-identity-store"/>

</basic-authscheme:credentialStore>

<basic-authscheme:credentialStoreKeyAdapter>

<s:ref bean="josso-simple-key-adapter"/>

</basic-authscheme:credentialStoreKeyAdapter>

</basic-authscheme:basic-auth-scheme>

...

Kode 3.5 Contoh Konfigurasi File josso-gateway-auth.xml

3.5 Konfigurasi SSL di JOSSO Gateway

Untuk konfigurasi SSL pada Tomcat dapat dilihat di lampiran. Berikut ini

merupakan konfigurasi SSL yang dilakukan pada JOSSO Gateway:

1. Pembuatan sertifikat klien bagi pengguna 'user1' adalah dengan menjalankan

perintah berikut:

# openssl genrsa -des3 -out user1.key 1024

2. Selanjutnya adalah membuat CSR (Certificate Signing Request) untuk CA

(Certification Authority) dengan menjalankan perintah berikut:

(57)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Perintah ini akan menghasilkan sebuah file bernama user1.csr yang berisi CSR.

3. Pengesahan CSR oleh CA dapat dilakukan dengan menjalankan perintah berikut:

# openssl x509 -req -in user1.csr -out user1.crt -sha1 -CA

myca.crt -CAkey myca.key -CAcreateserial -days 3650

4. Setelah private key dan publick key dihasilkan selanjutnya adalah mempaketkan

kedua key tersebut ke dalam format PKCS12 dengan menjalankan perintah

berikut:

# openssl pkcs12 -export -inkey user1.key -in user1.crt -out

user1.pfx

Perintah tersebut akan menghasilkan file user1.pfx yang kompatibel hampir semua

browser. Kemudian buka browser Firefox dan impor file tersebut.

5. Setelah konfigurasi SSL pada klien selanjutnya adalah konfigurasi SSL pada

server Tomcat. Edit file /opt/apache-tomcat-6.0.18/lib/josso-credentials.xml file

dan tambahkan sebuah credential baru bagi pengguna 'user1' seperti yang

ditunjukkan pada Kode 3.6.

<?xml version="1.0" encoding="ISO-8859-1" ?> <josso-credentials>

(58)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Kode 3.6 Contoh Konfigurasi File josso-credentials.xml

6. Langkah selanjutnya adalah mengkonfigurasi SSL pada JOSSO Agent . Edit file

/opt/php/includes/josso-php-inc/josso-cfg.inc seperti yang ditunjukkan pada kode

3.7. …

// Josso agent configuration

$josso_gatewayLoginUrl =

'https://localhost:8443/josso/signon/login.do';

$josso_gatewayLogoutUrl =

'https://localhost:8443/josso/signon/logout.do';

// WS client configuration :

...

(59)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

7. Untuk menguji apakah SSL sudah terintegrasi dengan JOSSO Gateway dapat

dilakukan dengan mengakses alamat berikut pada browser Firefox:

Sehingga akan muncul tampilan sebagai berikut: https://localhost:8443/josso/signon/login.do

Gambar 3.8 Tampilan JOSSO Gateway yang sudah terintegrasi dengan SSL

Pada Gambar 3.8 terlihat alamat

berubah menjadi

lingkaran berwarna merah. Ini membuktikan SSL telah berhasil diintegrasikan

(60)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

BAB IV

IMPLEMENTASI DAN PENGUJIAN JOSSO

4.1 Topologi Jaringan

Server untuk melakukan implementasi dan pengujian JOSSO dapat dibagi

menjadi dua yaitu:

Server untuk JOSSO Gateway yang dijalankan oleh Tomcat dan terkoneksi

dengan database MySQL

Server untuk JOSSO Agent yang berupa Aplikasi Web yang dijalankan oleh

Apache 2

Kedua server JOSSO tersebut ditempatkan pada sebuah jaringan dengan

(61)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Gambar 4.1. Implementasi jaringan JOSSO

4.3 Implementasi Aplikasi Web tanpa JOSSO

Untuk membuat Aplikasi Web tanpa josso dapat dilakukan dengan

menggunakan bahasa PHP dan CSS yang akan terkoneksi ke database. Aplikasi Web

yang akan dibuat adalah sebanyak 3 aplikasi yang terdiri dari: Aplikasi Web 1, 2 dan

(62)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

Gambar 4.2 Isi dari folder Aplikasi Web 1, 2 dan 3

Untuk penjelasan mengenai file-file yang ada pada gambar 4.2 adalah sebagai

berikut:

index.php : merupakan tampilan login dari Aplikasi Web

checklogin.php : merupakan script PHP yang berfungsi melakukan koneksi

ke database MySQL

login_success.php: merupakan tampilan apabila pengguna berhasil

melakukan otentikasi

(63)

Nursyamsi : Implementasi Sistem Single Sign-On Berbasis Java, 2009.

folder CSS : berisi script CSS yang mengatur tampilan pada index.php dan

login_success.php.

4.4 Implementasi Aplikasi Web dengan JOSSO

Untuk mengimplementasikan aplikasi web di dalam server JOSSO Agent

diperlukan sebuah halaman JOSSO berbasis PHP. Berikut ini adalah cara untuk

menjadikan Aplikasi Web agar terintegrasi dengan JOSSO Agent:

1. Ekstrak file yang ada pada josso-1.8.0/dist/agents/src/ josso-php-agent-1.8.0.zip.

Sehingga akan menghasilkan folder

josso-php-agent-1.8.0/josso-php-partnerapp/ yang berisi file sebagai berikut:

• josso-login.php

• josso-logout.php

• josso-security-check.php

2 . Salin file pada folder josso-php-agent-1.8.0/josso-php-partnerapp/ ke lokasi

Aplikasi Web yaitu /srv/www/httdocs/ dengan menjalankan perintah berikut di

terminal:

# cd ./josso-php-agent-1.0.8/

# cp -r josso-partnerapp /srv/www/htdocs/Aplikasi Web JOSSO 1

# cp -r josso-partnerapp /srv/www/htdocs/Aplikasi Web JOSSO 2

Gambar

Tabel 2.3 Perbandingan kekurangan beberapa produk SSO................................
Gambar 2.1  Konsep Sistem Mainframe
Gambar 2.2 Konsep dasar browser web dan server web
Gambar 2.3 Protokol dan network di dalam model TCP/IP
+7

Referensi

Dokumen terkait

Merancang aplikasi Single Sign-On dengan OpenLDAP sehingga bisa digunakan untuk autentifikasi user pada beberapa website. sehingga pada nantinya

Perancangan untuk implementasi single sign on system menggunakan protokol OAuth dengan studi kasus e-commerce ini terdapat tiga buah e-commerce sebagai media autentikasi dan

Pengguna layanan dapat lebih menyukai sistem Single Sign-On dari pada sistem sign-on biasa, namun pengelola layanan jaringan memiliki banyak tugas tambahan yang

Penerapan Single Sign On (SSO) pada system login aplikasi berbasis web dengan data yang di ambil dari database hasil replikasi, menjadi jawaban untuk meminimalisir dampak

Implementasi Single Sign On untuk multi- perusahaan pada tugas akhir ini mampu menangani autentikasi pengguna yang berasal dari berbagai perusahaan.Sehingga apabila

Jika pengguna tidak bisa melakukan otentikasi maka pengguna juga tidak dapat membuka salah satu, beberapa atau semua aplikasi web yang menggunakan otentikasi

Metodologi penelitian dalam penelitian implementasi sistem single sign on (SSO) terintegrasi antara captive portal, STIKOM Apps dan Google Apps dalam jaringan Wireless

Proses Login Sistem Single Sign-On SSO 3.4 Analisa Penyisipan Data pada Gambar dengan LSB Tahap embedding atau penyisipan gambar, dimulai dengan mengubah citra digital yang tersusun