PERANCANGAN DAN IMPLEMENTASI RESOURCE SERVER DAN AUTHORIZATION SERVER MENGGUNAKAN TEKNOLOGI OTENTIKASI OAUTH 2
SKRIPSI
YOSRINAL 111421017
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2014
Universitas Sumatera Utara
PERANCANGAN DAN IMPLEMENTASI RESOURCE SERVER DAN AUTHORIZATION SERVER MENGGUNAKAN TEKNOLOGI OTENTIKASI OAUTH 2
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
YOSRINAL 111421017
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2014
Universitas Sumatera Utara
PERSETUJUAN
Judul
: PERANCANGAN DAN IMPLEMENTASI RESOURCE SERVER DAN AUTHORIZATION SERVER MENGGUNAKAN TEKNOLOGI OAUTH 2 Kategori : SKRIPSI Nama : YOSRINAL Nomor Induk Mahasiswa : 111421017 Program Studi : EKSTENSI S1 ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing
:
Dosen Pembimbing II
Dosen Pembimbing I
M. Anggia Muchtar, ST, MM.IT NIP. 19800110 200801 1 010
Dian Rachmawati, S.Si, M.Kom NIP. 19830723 200912 2 004
Diketahui/disetujui oleh Program Studi Ekstensi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 19620217 199103 1 001
Universitas Sumatera Utara
PERNYATAAN
PERANCANGAN DAN IMPLEMENTASI RESOURCE SERVER DAN AUTHORIZATION SERVER MENGGUNAKAN TEKNOLOGI OTENTIKASI OAUTH 2
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Januari 2014
Yosrinal 111421017
Universitas Sumatera Utara
PENGHARGAAN
Bismillaahirrahmaanirrahim Alhamdulillahirrabbila’lamin Puji dan syukur penulis panjatkan hanya kepada Allah SWT, yang memelihara dan mengatur seluruh kehidupan ini, tempat mengadu dan memohon pertolongan. Berkat berkahan karunia dan petunjuk yang diberikan dariNya, penulis mampu menyelesaikan skripsi ini. Shalawat dan beriring salam penulis ucapkan kepada baginda Rasulullah Muhammad SAW. Skripsi ini dikerjakan sebagai salah satu syarat guna memperoleh gelar Sarjana Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Penulis menyadari bahwa terselesaikannya skripsi ini tentunya tak lepas dari dorongan dan bantuan berbagai pihak. Oleh karena itu, dengan segala kerendahan hati penulis mengungkapkan rasa terima kasih dan penghargaan kepada : 1. Ibu Dian Rachmawati, S.Si, M,Kom, selaku Dosen Pembimbing I yang telah memberikan arahan, masukan, bimbingan, saran, serta motivasi yang membangun untuk penulis sehingga penulis dapat menyelesaikan skripsi ini dengan baik. 2. Bapak M. Anggia Muchtar, ST, MM.IT, selaku pembimbing II yang telah memberikan masukan, bimbingan, saran dan motivasi kepada penulis, serta sabar memberikan bantuan sehingga penulis dapat menyelesaikan skripsi ini dengan baik. 3. Bapak Ade Candra, ST, M.Kom selaku Dosen Pembanding I, yang telah memberikan kritik dan saran yang membangun bagi penulis. 4. Bapak Herriyance, ST, M.Kom sebagai Dosen Pembanding II yang telah memberikan kritik dan saran yang membangun bagi penulis. 5. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara berserta para pegawai yang bertugas di Program Studi Ilmu Komputer FASILKOM-TI USU. 6. Orang tua tercinta, Ayahanda Faizal Tahar dan Ibunda Rosdawati, Abangnda Yoseirsal untuk semua doa, dukungan, dan motivasi yang tak ternilai harganya. 7. Bapak dr. Alis Marajo dan Bapak Drs.H.Asyirwan Yunus, M.Si selaku Bupati Lima Puluh Kota dan Wakil Bupati Lima Puluh Kota - Sumatera Barat yang telah memberikan izin kepada penulis melakukan kegiatan tugas belajar. 8. Bapak Ambardi, SE, MM selaku Kepala Badan Penanaman Modal dan Pelayanan Perizinan Lima Puluh Kota beserta keluarga besar BPMPPT, yang telah memberikan kesempatan penulis melakukan tugas belajar. 9. Kepala Badan Kepegawaian Lima Puluh Kota Lima - Sumatera Barat beserta seluruh jajaran staf / pegawai, terimakasih atas bantuan yang telah diberikan kepada penulis selama ini. 10. Dolly Aswin Harahap, dan teman - teman sejawat Ekstensi 2011 Donny Sanjaya, Hedi Hermawan Harahap, Adam Kurniawan, Fatah Abdella Sutara,
Universitas Sumatera Utara
Tanzilul Khoir Gultom dan seluruh teman - teman Ekstensi Kom A dan B dengan tidak mengurangi rasa persahabatan sedikit pun, salam kompak. 11. Seluruh kolega dan teman-teman dari jajaran Pemkab Lima Puluh Kota Sumatera Barat Ronal Harsya, Ifdol Rahman, Pak Haji Salman, Uda Musmulyadi, HN, ST, Kak Melsy, Yengky Nofra Effendi, serta adik - adik dari CV. Ferrari Corp. (Harianto dan Ferdi), terimakasih untuk semua dukungan morilnya. Semoga Allah SWT membalas semua kebaikan yang telah kalian berikan.
Medan,
Januari 2014
Penulis
Yosrinal
Universitas Sumatera Utara
ABSTRAK
OAuth adalah entitas yang dapat memberikan hak akses terhadap sumber yang dilindungi (protected resource). Dengan OAuth seseorang dapat berbagi data dengan orang lain seperti foto, video dan tulisan secara langsung sehingga dapat mengidentifikasi dan memudahkan dalam proses pengenalan dan pencarian informasi. Tujuan penelitian ini adalah merancang dan menerapkan prosedur mekanisme kerja teknologi OAuth 2 dengan melibatkan adanya otorisasi server yang merupakan sumber daya server itu sendiri dalam melakukan otentikasi dan otorisasi credential dari seorang client. Pada penelitian ini digunakan 3 (tiga) aplikasi yang bersifat single sign on, terdiri atas 3 halaman sign-in berbasis otentikasi OAuth 2 dari pemilik sumber daya (Resource Owner) dengan menerapkan proses kerja otentikasi OAuth 2. Otentikasi OAuth 2 lewat peran Authorization Server akan memvalidasi credential dari client seusai keberadaannya pada basis data, di proses dengan mengeluarkan sebuah halaman otorisasi (Authorize App) untuk diarahkan ke halaman utama setiap aplikasi web masing-masing. Otorisasi akhir dari kebenaran credential seorang client adalah di hasilkan sebuah akses token yang bekerja pada url (uniform resource locator) pada masing - masing aplikasi web. Kata Kunci: Authorization Server, OAuth 2, Otentikasi dan Otorisasi, Resource Server.
Universitas Sumatera Utara
DESIGN AND IMPLEMENTATION OF RESOURCE SERVER AND AUTHORIZATION SERVER USING OAUTH 2 AUTHENTICATION TECHNOLOGY
ABSTRACT
OAuth is an entity that can grant access to a protected resource. With OAuth someone can share the data with others such as photos, videos and posts directly so as to identify and facilitate the process of recognition and information retrieval. The purpose of this research is to design and implement procedures work mechanism involving technology OAuth 2 authorization server is a server resource itself in the authentication and authorization of a client credential. In this study, the three applications that are single sign on, consisting of 3 pages sign in OAuth 2 authentication based on the owner of the resource (resource owner) by implementing OAuth 2 authentication work process. Authentication via OAuth 2 Authorization Server will validate the role of client credential after its existence on the basis of the data, in the process by issuing an authorization page ( Authorize app ) to be directed to the main page of any web application, respectively. Final authorization of a client credential truth is generated an access token that works on the url ( uniform resource locator ) on each web application. Keywords: Authentication and Authorization, Authorization Server, OAuth 2, Resource Server.
Universitas Sumatera Utara
DAFTAR ISI
Hal. PERSETUJUAN PERNYATAAAN PENGHARGAAN ABSTRAK ABSTRACT DAFTAR ISI DAFTAR TABEL DAFTAR GAMBAR
ii iii iv vi vii viii x xi
BAB 1 PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian 1.5 Manfaat Penelitian 1.6 Metode Penelitian 1.7 Sistematika Penulisan
1 2 2 3 3 3 4
BAB 2 TINJAUAN PUSTAKA 2.1 Pengenalan OAuth 2.2 OAuth 1.0 2.3 OAuth 2.0 2.4 Hibah Otorisasi (Authorization Grant) 2.4.1 Authorization Code 2.4.2 Implicit 2.4.3 Resource Owner Password Credential 2.4.4 Client Credential 2.5 Access Token dan Refresh Token 2.5.1 Access Token 2.5.2 Refresh Token 2.6 Jenis Client Profile 2.6.1 Server Side Web Application 2.6.2 Client Side User Agent Based Application 2.6.3 Resource Owner Password Flow 2.7 Workflow Client Profile 2.7.1 Server Side Web Application Flow 2.7.2 Client Side Web Application Flow 2.7.3 Resource Owner Password Flow 2.8 Proses Roles of Authetication 2.8.1 Web Server Application 2.8.2 Browser Based Application 2.9 Sistem Informasi
6 6 7 11 13 13 13 14 14 14 14 15 15 15 15 16 16 16 18 19 20 20 24 26
Universitas Sumatera Utara
2.9.1 Pengertian Sistem Informasi 2.9.2 Pengertian Informasi 2.9.3 Konsep Sistem Informasi
26 26 27
BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Permasalahan 3.2 Analisis Kebutuhan Sistem 3.3 Analisis Teknologi OAuth 2 3.4 Perancangan Sistem 3.4.1 Deskripsi Sistem 3.4.1.1 Fungsi Utama 3.4.1.2 Batasan 3.4.2 DFD (Data Flow Diagram) 3.4.2.1 Diagram Konteks 3.4.2.2 Data Flow Diagram Level 1 3.4.2.3 Data Flow Diagram Level 2 3.4.3 Perancangan Basis Data 3.4.4 Flowchart Sistem 3.4.4.1 Flowchart Sistem Aplikasi Secara Umum 3.4.4.2 Flowchart Otentikasi OAuth 2 3.4.5 Perancangan Tampilan 3.4.5.1 Rancangan Halaman Tambah Client 3.4.5.2 Rancangan Halaman Sign-In 3.4.5.3 Rancangan Halaman Utama 3.4.5.4 Rancangan Halaman Menu dan Harga 3.4.5.5 Rancangan Halaman Reservasi 3.4.6 Pseudocode
28 28 29 31 34 34 34 35 35 35 37 39 40 41 42 43 44 45 46 47 48 49 50
BAB 4 IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Sistem 4.1.1 Spesifikasi Perangkat Lunak dan Perangkat Keras 4.1.2 Implementasi Aktivitas Menambah Client Baru 4.1.3 Implementasi Aktivitas Sign In 4.1.4 Implementasi Proses Otentikasi Teknologi OAuth 2 4.1.5 Implementasi Reservasi Pada Web Aplikasi Cafe 4.2 Pengujian Sistem 4.2.1 Pengujian Black Box 4.2.2 Pengujian Tambah Client Baru 4.2.3 Pengujian Sign In dengan Otentikasi OAuth2 4.2.4 Pengujian Reservasi
56 56 56 57 58 60 61 61 63 65 72
BAB 5 KESIMPULAN DAN SARAN 5.1 Kesimpulan 5.2 Saran
75 75 76
Daftar Pustaka
77
Universitas Sumatera Utara
DAFTAR TABEL
Hal. 2.1 Tugas dan Fungsi 4 (empat) Komponen OAuth 2.2 Keterangan Server Side Web Application Flow 2.3 Keterangan Server Side Web Application Flow 2.4 Keterangan Resource Owner Password Flow 3.1 Keterangan Proses Kerja Teknologi OAuth 2 3.2 Keterangan Proses Schema Jaringan OAuth 2 3.5 Tabel Reservasi 3.6 Tabel Clients 3.7 Tabel Tokens 3.8 Kode Program Untuk Membuat Kode OAuth 2 4.1 Spesifikasi Perangkat Pada Aplikasi 4.2 Tahapan Pengujian Pada Sistem 4.3 Daftar Client ID dan Client Secret 4.4 Daftar Client ID dan Client Secret Dari Basis Data Clients 4.5 Akses Token Yang Dihasilkan Dari Beberapa Client Yang Berbeda 4.6 Data Akses Token Yang Berasal Dari Basis Data Tokens
12 17 18 19 32 33 40 40 41 48 56 61 66 66 71 71
Universitas Sumatera Utara
DAFTAR GAMBAR
Hal. 2.1 Tiga Peran Aktif pada OAuth 1.0 2.2 Otorisasi Akses Layanan bit.ly Menggunakan Account Twitter.com 2.3 Lalu Lintas Transaksi OAuth 1.0 2.4 Antar Muka Layanan Bit.ly 2.5 Mekanisme Kerja OAuth 2 2.6 Server Side Web Application Flow 2.7 Client Side User Web Application Flow 2.8 Resource Owner Password Flow 2.9 Proses Otentikasi Web Server Application 2.10 Proses Otentikasi Web Server Application -2 2.11 Proses Otentikasi Web Server Application- 3 2.12 Auth Code dari Google API 2.13 Halaman Auth Code dari Google API 2.14 Proses Otentikasi Web Server Application - 4 2.15 Proses Otentikasi Web Sever Application - 5 2.16 Proses Otentikasi Browser Based Application 2.17 Proses Otentikasi Browser Based Application- 2 2.18 Proses Otentikasi Browser Based Application- 3 2.19 Proses Otentikasi Browser Based Application - 4 3.1 Diagram Ishikawa Analisis Masalah 3.2 Proses Kerja Teknologi OAuth 2 Pada Aplikasi Web 3.3 Schema Jaringan OAuth 2 3.4 DFD Level 0 3.5 Data Flow Diagram Level 1 3.6 Data Flow Diagram Level 2 3.6 Flowchart Sistem Aplikasi Secara Umum 3.7 Flowchart Otentikasi OAuth 2 3.8 Rancangan Tampilan Halaman Tambah Client 3.9 Rancangan Tampilan Halaman Sign-In 3.10 Rancangan Tampilan Halaman Utama 3.11 Rancangan Tampilan Halaman Menu dan Harga 3.12 Rancangan Tampilan Halaman Reservasi 4.1 Form Pendaftaran Client Baru 4.2 Form Aktivitas Sign In Web SSO 4.3 Form Aktivitas Sign In Web 2 SSO 4.4 Form Aktivitas Sign In Web 3 SSO 4.5 Halaman Authorize App 4.6 Akses Token Dihasilkan 4.7 Halaman Form Reservasi 4.8 Halaman Tambah Client Baru 4.9 Pesan Error Halaman Tambah Client Baru 4.10 Pesan Sukses Halaman Tambah Client Baru
8 9 10 10 12 16 18 19 20 21 22 22 23 23 24 25 25 26 26 29 31 33 36 38 40 43 44 46 47 48 49 50 57 57 58 58 59 59 60 63 64 64
Universitas Sumatera Utara
4.11 Pengujian Tambah Client Baru Menggunakan Add-ons Firebug 4.12 Halaman Aktivitas Sign In 4.13 Pesan Error - 1 Halaman Aktivitas Sign In 4.14 Pesan Error - 2 Halaman Aktivitas Sign In 4.15 Pesan Error Menggunakan Add-ons Firebug 4.16 Form Sign In Diisi Dengan Benar 4.17 Halaman Authorize App Menggunakan Data Client-1 4.18 Pengujian Form Sign-in Menggunakan Add-ons Firebug 4.19 Akses Token Yang Dihasilkan Pada Halaman Utama 4.20 Form Aktivitas Reservasi 4.21 Form Aktivitas Reservasi Saat Diisi 4.22 Balasan Dari Aplikasi Sistem Perihal Reservasi
65 66 67 67 68 69 69 70 70 72 73 74
Universitas Sumatera Utara
DAFTAR LAMPIRAN
Hal. A. Listing Program B. Curriculum Vitae
A-1 B-1
Universitas Sumatera Utara