BAB II LANDASAN TEORI
2.1. Identity Management Pada dunia komputerisasi, Identity Management (IdM) merupakan suatu cara untuk mengelola user pada masing-masing sistem termasuk authentication, authorization (Santarcangelo, 2012),dan privilledge (Waters, 2012) pada setiap sistem dengan tujuan untuk meningkatkan keamanan, produktifitas, mengurangi biaya, dan pengelolaan user yang berulang-ulang (Rouse, 2012).
2.1.1. Perbandingan Produk Identity Management Beberapa perusahaan yang mengembangkan Identity Management System adalah sebagai berikut : 1. IBM (Tivoli Identity Manager) 2. Novell (Novel Identity Manager) 3. SUN (Sun Java System Identity Manager) 4. Oracle (Oracle Identity Management) 5. CA Technologies (CA Identity Manager) Berikut adalah perbandingan Identity Management System berdasarkan features & capabilities dan strategy & vision (Srinivasan & Rodrigues, 2010):
4
5
Gambar 2.1 Perbandingan produk Identity Management berdasarkan Features & Capabilities dan Strategy & Vision Berdasarkan gambar 2.1 dapat dilihat bahwa Oracle Identity Management memiliki features & capabilities yang lebih tinggi dari pada produk lain , begitu juga dari sisi strategy & vision.
2.1.2. Oracle Identity Management Pada penelitian ini, peneliti akan menggunakan Oracle Identity Management 11g (OIM 11g) sebagai objek dari penelitian ini. OIM merupakan suatu produk dari Oracle yang berguna untuk melakukan manajemen identitas user terhadap sistem yang ada pada suatu organisasi atau perusahaan. Secara umum OIM memiliki peran yang sangat baik dalam melakukan management user sistem dalam suatu organisasi/perusahaan. (Marc, 2010). Berikut adalah arsitektur dari OIM.
6
Gambar 2.2 Oracle Identity Management System Arsitektur
2.2. Oracle Identity Management Concepts 2.2.1. Oracle Identity Management Connectors Oracle Identity Management (OIM) dapat digunakan sebagai pusat dari manajemen sumber daya manusia dalam suatu organisasi. OIM menawarkan berbagai solusi untuk melakukan integrasi terhadap masing-masing sistem yang dimiliki oleh suatu organisasi dengan menggunakan connector yang telah disediakan (Prakash, Datta, & Vadassery, 2009). Untuk integrasi OIM dengan target sistem terdiri dari 2 bagian, diantaranya yaitu: 1. Target Account Management Secara fungsional Target Account Management terdiri dari 2 bagian, yaitu:
7
•
Target Resource Reconciliation : Suatu proses untuk melakukan create, modify, delete target system pada profile user di OIM.
•
Provisioning : Suatu proses untuk melakukan create, modify, delete pada sisi user management target sistem, dimana datanya sesuai dengan data user profile (exist user) pada OIM.
2. Trusted Source Reconciliation Suatu proses dan tindakan (create, modify, delete) user OIM yang bersumber dari data source yang terpercaya seperti data dari sistem Human Resource. Dengan adanya proses diatas ditujukan agar setiap data user
yang
dimiliki oleh OIM dengan data yang dimiliki oleh target sistem selalu sama (synchronize).
2.2.2. Integration Solution OIM menyediakan 2 cara untuk melakukan integrasi ke target sistem, diantaranya adalah sebagai berikut : 1. Generic Technolgy Connector : Connector yang sudah disiapkan oleh OIM dimana hanya bisa digunakan untuk integrasi terhadap suatu aplikasi tertentu. 2. Custom Connector : Connector yang dibangun menggunakan J2EE Platform (.jar) berdasarkan adapter factory yang ada pada OIM.
8
2.2.3. Provisioning Provisioning adalah suatu proses yang dilakukan oleh OIM untuk melakukan create, update, dan delete user pada target sistem. Berikut adalah gambaran proses provisioning dari OIM.
Gambar 2.3 Provisioning Process Berdasarkan pada gambar di atas, terdapat beberapa terdapat beberapa jenis adapter yang dapat digunakan dalam melakukan integrasi antara Oracle Identity Management dengan target sistem, diantaranya yaitu JDBC, JAVA, Web Service, Stored Procedures, 3270/5250. Pada penelitian ini, peneliti akan mencoba membangun adapter dengan memanfaatkan teknologi Web Service untuk melakukan integrasi antara Oracle Identity Management dengan target sistem. Target sistem dalam penelitian ini disebut juga sebagai target application/ resource object atau external application seperti yang ada pada salah satu entity pada gambar 2.3. Untuk proses provisioning ke target sistem dapat dilakukan dengan beberapa cara, yaitu :
9
1. Request Based Provisioning Proses provisioning berjalan berdasarkan proses request yang dilakukan oleh user dan request tersebut akan di approve oleh approval user menggunakan user interface yang terdapat pada OIM 2. Policy Based Provisioning Proses provisioning berjalan berdasarkan policy yang sudah ditentukan oleh organisasi sesuai dengan role masing-masing user. 3. Direct Provisioning Proses provisioning dilakukan langsung oleh system administrator OIM dengan menambahkan resource pada profil user.
2.2.4. Oracle Identity Management Connector Component OIM menggunakan beberapa komponen yang nanti akan digunakan dalam integrasi terhadap target sistem. Dapat dilihat seperti pada gambar di bawah (Oracle, 2011) :
10
Gambar 2.4 Oracle Identity Management Component Arsitektur Berikut adalah penjelasan dari beberapa entity yang ada pada gambar 2.4: 1. IT Resource IT Resource adalah sebuah sumber data yang menyimpan informasi tentang koneksi yang akan digunakan terhadap target system. Oracle Identity Management menggunakan informasi ini untuk terhubung ke user management target system. Contoh informasi yang disimpan oleh IT Resource seperti username,password,URL, dan sebagainya.
11
Gambar 2.5 IT Resource Parameter 2. IT Resource Type Jumlah parameter yang dimiliki oleh setiap IT Resource bisa berbedabeda satu sama lain. Tergantung dari tipe koneksi ke target system yang akan digunakan. Setiap IT Resource harus didefinisikan terlebih dahulu, untuk penamaan parameter-parameter yang akan digunakan. Berikut contoh dari pembuatan IT Resource Type:
12
Gambar 2.6 IT Resource Type Definition 3. Lookup Definition Lookup Definition adalah suatu repository yang berisikan daftar nilai-nilai yang dapat digunakan ketika akan menentukan sebuah role untuk provisioning user baik lewat request, policy, ataupun direct. Berikut contoh dari Lookup Definition :
Gambar 2.7 Lookup Definition
13
4. Resource Object Dalam hal ini, resource object pada penelitian ini disebut juga sebagai target system. Resource object berisikan atribut-atribut yang dibutuhkan untuk nanti akan digunakan pada proses process definition dan reconciliation. Selain itu, informasi tentang konfigurasi juga disimpan di dalam resource object ini. Berikut adalah contoh tampilan dari resource object:
Gambar 2.8 Resource Object 5. Process Form Process form merupakan suatu repository yang disediakan oleh Oracle Identity Management untuk mendefinisikan field-field yang akan digunakan oleh target system. Sekaligus tempat untuk mendefinisikan suatu field yang digunakan oleh target system mempunyai type data apa saja (varchar, char, lookup, integer). Berikut adalah contoh tampilan dari process form:
14
Gambar 2.9 Process Form
2.2.5. Provisioning Process, Process Task, and Adapters Provisioning process merupakan suatu konfigurasi untuk melakukan provisioning terhadap target system dengan cara membentuk suatu hubungan kerja antar process task. Sedangkan process task menjalankan adapters yang telah disediakan dalam menjalankan fungsi-fungsi yang ada pada target system. Beberapa fungsi-fungsi yang akan digunakan dalam provisioning process adalah sebagai berikut : •
Create User
•
Modify User Attribute
•
Delete User
15
Berikut adalah contoh tampilan dari konfigurasi process provisioning:
Gambar 2.10 Provisioning Process Sebelum melakukan konfigurasi pada adapters, hal yang harus dilakukan terlebih dahulu adalah membangun fungsi-fungsi yang akan dijalankan dengan cara menyediakan file .jar yang nantinya akan di eksekusi oleh Oracle Identity Management. Berikut adalah contoh fungsi-fungsi yang akan di eksekusi oleh Oracle Identity Management: Create User public String CreateUser (String UserID,String Password,String Role){ try{ Class.forName(this.dbDriver); Connection conn = DriverManager.getConnection(this.dbURL, this.dbUsername, this.dbPassword); Statement stmt = conn.createStatement(); String InsertUser="insert into user (userid,password,role) values ('"+UserID+"','"+Password+"','"+Role+"')";
16
stmt.executeUpdate(InsertUser); stmt.execute("COMMIT"); conn.close(); stmt.close(); } catch (Exception e) { System.out.println("Error : " + e.getMessage()); e.printStackTrace(); return "E"; } return "OK"; }
Modify User Attribute public String ModifyRole (String UserID,String Role){ try{ Class.forName(this.dbDriver); Connection conn = DriverManager.getConnection(this.dbURL, this.dbUsername, this.dbPassword); Statement stmt = conn.createStatement(); String UpdateUser="update user set role='"+Role+"' where userid='"+UserID+"'"; stmt.executeUpdate(UpdateUser); stmt.execute("COMMIT"); conn.close(); stmt.close(); } catch (Exception e) { System.out.println("Error : " + e.getMessage()); e.printStackTrace(); return "E"; } return "OK"; }
Delete User public String DeleteUser (String UserID){ try{ Class.forName(this.dbDriver); Connection conn = DriverManager.getConnection(this.dbURL, this.dbUsername, this.dbPassword); Statement stmt = conn.createStatement();
17
String DeleteUser="delete from user where userid='"+UserID+"'"; stmt.executeUpdate(DeleteUser); stmt.execute("COMMIT"); conn.close(); stmt.close(); } catch (Exception e) { System.out.println("Error : " + e.getMessage()); e.printStackTrace(); return "E"; } return "OK"; }
2.3 Web Service 2.3.1 Pengertian Web Service Web service adalah sebuah layanan interface yang mengimplemetasikan suatu logic dari suatu bisnis proses (Reddy, Geetha, & Srinivasa, 2011). Interface dari web service menerima pesan dalam bentuk XML dari jaringan, dan mengubahnya ke dalam format yang dipahami oleh software dari back end system, dan mengembalikan pesan tersebut. Implementasi dari web service dapat dibuat dengan menggunakan bahasa program, sistem operasi, atau perangkat lunak apapun.
18
Gambar 2.11 Web Service Interface dengan Back End System XML (Extensible Markup Language) adalah spesifikasi standar yang dibakukan oleh W3C (World Wide Web Consortium), yang secara khusus di desain untuk dokumen web. XML memberikan kebebasan kepada desainer untuk menentukan sendiri tag-tag data seperti halnya HTML tag. Sehingga hal ini akan memudahkan dalam pemahaman definisi data, transmisi data, validasi data dan interpretasi data antar aplikasi dan perusahaan. SOAP (Simple Obejct Access Protocol) adalah sebuag protokol pemaketan data XML dalam web service, baik itu akan digunakan sebagai request maupun response. SOAP sangat tergantung dari sistem operasi dan protokol pengiriman (transport protocol) yang digunakan. Adapun protokol pengiriman yang didukung adalah SMTP, MIME dan HTTP. WSDL (Web Service Definition Language) adalah suatu bahasa dalam format XML yang digunakan untuk menggambarkan isi dan kemampuan web service dalam pertukaran pesan. WSDL adalah bahasa yang digunakan oleh UDDI dalam memberikan definisi metadata dari sebuah web service. UDDI (Universal Description, Definition, and Integration) adalah direktori terdistribusi
19
berbasis web, yang memungkinkan sebuah proses bisnis (business proses) atau logika bisnis (business logic) untuk mendaftarkan dirinya, atau menemukan logika bisnis lain dalam internet. Dalam dunia nyata UDDI bisa dikatakan sebagai katalog dari logika bisnis di internet. Web service dikategorikan menjadi dua menurut jenisnya yaitu REST (Representation State Transfer) dan SOAP (Simple Object Access Protocol), yang masing-masing mempunyai kelemahan dan keunggulan.
2.3.2 SOAP Web Service
Gambar 2.12 SOAP Web Service Arsitektur (Mumbaikar & Padiya, 2013) Pada gambar 2.12 dapat dilihat bahwa SOAP Web service terdiri dari 3 entitas diantaranya yaitu : Service Provider, Service Registry, Service Consumer. Service Provider : Berfungsi untuk menyediakan layanan/service dan mengolah sebuah registry agar layanan-layanan tersebut dapat tersedia.
20
Service Registry : Berfungsi sebagai lokasi central yang mendeskripsikan semua layanan/service yang telah di-register. Service Consumer : Peminta layanan yang mencari dan menemukan layanan yang dibutuhkan serta menggunakan layanan tersebut. Dalam menjalankan tugasnya, SOAP menggunakan struktur XML tertentu dalam mengirimkan request kepada web service. Penerimaan respon dari web service memiliki struktur tersendiri. Berikut adalah contoh dari struktur SOAP request: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:ExampleAPI"> <SOAP-ENV:Body> <ns1:getPeopleByFirstLastName>
j* * Struktur diatas terdiri dari dua bagian, Envelope dan Body. Envelope berisi keterangan-keterangan tentang namespace yang digunakan dalam dokument XML ini, dan juga dapat berisi attribute dan header. Sedangkan Body berisi pesan yang akan dikirinkan ke web service. Dalam contoh diatas, Body berisi permintaan akan operasi getPeopleByFirstLastName yang disediakan suatu
21
web service dengan parameter yang dikirimkan berupa nama depan dengan huruf pertama j dan nama belakang apa saja. Berikut adalah contoh SOAP response yang akan diberikan jika mengirimkan XML seperti diatas: <SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.x mlsoap.org/soap/en velope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body>
<SOAP-ENC:Struct> 1 John Smith Struktur SOAP response diatas juga sama dengan struktur SOAP request yang diterangkan sebelumnya, tetapi pada tag Body berisi balasan atau output dari operasi web service yang dipanggil pada pesan SOAP request. Beberapa contoh dari SOAP web service adalah Google API, Yahoo! API, dan sebagainya.
22
2.3.3 Restful Web Service Istilah Restful diperkenalkan oleh Roy Fielding. Arsitektur dari Restful adalah client server arsitektur, dimana client mengirimkan permintaan ke server kemudian server akan memproses permintaan dan mengembalikan response. Permintaan dan response ini melakukan transfer representasi dari sebuah resource yang terdiri dari URL (Mumbaikar & Padiya, 2013). Berikut contoh format URL yang digunakan oleh Restful Web Service (Adamczyk, Smith, Johnson, & Hafiz, 2011):
Gambar 2.13 Contoh format URL Restful Web Service Perintah HTTP yang bisa digunakan adalah fungsi GET, POST, PUT, atau DELETE. Balasan yang dikirimkan adalah dalam bentuk XML sederhana tanpa ada protokol pemaketan data, sehingga informasi yang diterima lebih mudah dibaca dan diparsing dari sisi client.
23
2.3.4 Perbandingan antara SOAP Web Service dengan Restful Web Service Berikut adalah perbandingan antara SOAP Web Service dan Restful Web Service (Wagh & Thool, 2012): Tabel 2.1 Perbandingan SOAP Web Service dengan Restful Web Service SOAP Teknologi tradisional Masih attractive digunakan oleh perusahaan Interaksi antara client ‐ server sangat erat Dalam hal implementasi, SOAP mendekati Restful sebagai penetapan development dari SOAP Web Service Jika terjadi perubahan pada service SOAP server, maka dari sisi client perubahannya cukup complicated dari code SOAP memiliki payload yang lebih berat dibandingkan dengan Restful Membutuhkan parsing binary SOAP tidak termasuk infrastruktur Wireless
RESTFUL Teknologi baru Tidak cukup attractive digunakan oleh perusahaan Interaksi antara client‐server tidak terlalu erat Tapi developers Restful Web Service membantah adanya interface yang fleksibel Jika terjadi perubahan service pada Restful server, perubahan dari sisi client tidak begitu signifikan Restful memiliki payload yang lebih ringan dari SOAP Support untuk semua tipe data Restful termasuk ke dalam infrastruktur wireless Restful tidak selalu memberikan return data XML, tergantung format data yang telah disiapkan
SOAP selalu memiliki return data bertipe XML SOAP menggunakan lebih banyak bandwidth Permintaan SOAP request menggunakan POST dan memerlukan permintaan XML yang kompleks untuk memberikan response SOAP menggunakan HTTP yang bereferensi terhadap API yang telah disiapkan. Tipe response berupa XML / JSON Language, platform, and transport agnostic
Restful standarisasinya menggunakan URL Language and platform agnostic
Didesain untuk menangani sistem komputer terdistribusi Sulit untuk di develop
Didesain bukan untuk menangani sistem komputer terdistribusi Mudah untuk di develop
SOAP lebih aman digunakan, karena SOAP menggunakan WS Security
Untuk security, Restful membutuhkan security tambahan
Memiliki dukungan yang lebih baik dari standarnya, seperti WSDL dan WS
Kurang memiliki dukungan yang baik dari standarnya
Restful tidak membutuhkan banyak bandwidth Restful dapat dikonsumsi menggunakan permintaan GET, dan permintaan response nya sangat mudah
24
Berdasarkan pada tabel 2.1 dapat diperhatikan bahwa teknologi yang digunakan oleh Restful Web Service lebih modern jika dibandingkan dengan teknologi yang digunakan oleh SOAP Web Service, akan tetapi dari sisi keamanan
Restful
Web
Service
membutuhkan
fitur
tambahan
dalam
pembangunannya.
2.3.5 McCabe Cyclomatic Complexity Cyclomatic Complexity atau biasa juga disebut dengan Conditional Complexity adalah alat pengukuran untuk mengindikasikan kekompleksitasan dari suatu program dengan cara menelusuri nomor dari jalur yang independen melalui source code program tersebut. Dikembangkan oleh Thomas J. McCabe,Sr. pada tahun 1976, Cyclomatic Complexity digunakan di semua fase pada software lifecycle, dimulai dari fase desain untuk menjaga agar software dapat dipercaya dan mudah untuk di tes, dan juga agar bisa terorganisir.
Gambar 2.14 Contoh grafik aliran Gambar di atas merupakan grafik aliran kontrol dari program sederhana. Program tersebut mulai mengeksekusi pada titik merah, lalu masuk kepada loop
25
(grup dari tiga titik tepat dibawah titik merah). Pada saat looping berakhir, ada pernyataan kondisional (grup di bawah loop), dan program berakhit pada titik biru. Untuk grafik di atas, E=9, N=8, P=1, Cyclomatic Complexity nya sama dengan 3 (www.wikipedia.org, 2014). Cyclomatic Complexity pada dasarnya merepresentasikan jumlah jalur melalui beberapa bagian code tertentu dimana bahasa berorientasi objek berlaku untuk metode tersebut. Persamaan Cyclomatic Complexity yang untuk akademik formal dari teori grafik di atas adalah : CC = E - N + P Dimana E merepresentasikan jumlah dari ujung grafik, N untuk nomor dari titik, dan P untuk nomor dari komponen yang terhubung.
2.3.6 JMeter Tools JMeter merupakan perangkat lunak open source berbasis Java Desktop yang digunakan untuk menguji perilaku fungsional dan mengukur performansi suatu perangkat lunak berbasis web (Karya, 2012). Secara umum JMeter adalah sebuah tools yang memiliki fungsi sebagai berikut : •
Sebuah tools atau alat yang digunakan untuk melakukan performance test pada sebuah software atau sistem
•
Jmeter dapat memberikan request dalam jumlah yang sangat banyak secara bersamaan dalam satu waktu pada satu server
•
JMeter dapat memberikan analisa dan laporan hasil pengujian
Untuk cara penggunaan JMeter lebih lanjut dapat dilihat di jmeter.apache.org.
26
2.4
Literature Review Berikut adalah daftar literature review yang digunakan dalam penelitian
ini: Tabel 2.2 Literature Review No Judul
REST: From Research to 1 Practice A Review and Analysis of Software Complexity Metrics in Structural 2 Testing
Penulis Adamczyk, P., Smith, P. H., Johnson, R. E., & Hafiz, M Debbarma, Debbarma, Debbarma, Chakma, & Jamatia
Oracle Identity Management 3 11g Marc, C Web Services Based On 4 SOAP and REST Principles Web-Based Applications quality factors: A survey and a proposed conceptual 5 model
Mumbaikar, S., & Padiya, P
Nabil, D., Mosad, A., & Hefny, H
Oracle Identity Manager 6 Migration Guidelines Oracle Identification of Performance Improving Factors for Web Application Patil, S. S., & Joshi, 7 by Performance Testing S Oracle Identity Manager 8 Connector Concepts EARLY PERFORMANCE PREDICTION OF WEB 9 SERVICES Identity Management in an 10 enterprise setting
Prakash, A., Datta, D., & Vadassery, L Reddy, C. R., Geetha, D. E., & Srinivasa, K
Rouse, M
Tahun Korelasi Format penulisan URL untuk melakukan akses ke 2011 Restful Web Service Beberapa cara yang dapat digunakan untuk mengukur tingkat kesulitan sebuah 2013 sistem Peranan Oracle Identity Management dalam melakukan manajemen user di dalam suatu 2010 perusahaan Pembangunan SOAP Web Service dan Restful Web 2013 Service yang baik Kualitas suatu sistem dari 2011 perspektif pengembang Petunjuk dalam pembangunan Oracle 2011 Identity Management Pengujian sistem dalam 2012 kondisi maksimum Oracle Identity 2009 Management Connectors Penjelasan tentang 2011 penggunaan Web Service Peningkatan pengelolaan keamanan dan 2012 pengelolaan user pada
27
sistem
Identity Management Series 11 – Role- and Rule-Basing ANALYSIS ON IDENTITY MANAGEMENT SYSTEMS WITH EXTENDED STATE-OFTHE-ART IDM 12 TAXONOMY FACTORS A Comparative Study of SOAP Vs REST Web 13 Services Provisioning The ABCs of Identity 14 Management
Santarcangelo, M
Pentingnya authentication dan authorization pada 2012 suatu sistem
Wagh, K., & Thool, R
Perbandingan produk Identity Management System berdasarkan fitures 2010 dan capabilities Perbandingan SOAP Web Service dengan Restful 2012 Web Service
Waters, J. K
Pentingnya manajemen privilledge user pada suatu 2012 sistem
Srinivasan & Rodrigues