4
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):
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:
• 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 :
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.
Gambar 2.5 IT Resource Parameter
2. IT Resource Type
Jumlah parameter yang dimiliki oleh setiap IT Resource bisa berbeda-beda 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 :
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
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);
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
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: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:ExampleAPI"> <SOAP-ENV:Body> <ns1:getPeopleByFirstLastName> <first>j*</first> <last>*</last> </ns1:getPeopleByFirstLastName> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
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
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:
<?xml version="1.0" encoding="UTF-8"?> <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> <result> <SOAP-ENC:Struct> <id>1</id> <firstName>John</firstName> <lastName>Smith</lastName> </SOAP-ENC:Struct> </result> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
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.
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 RESTFUL Teknologi tradisional Teknologi baru Masih attractive digunakan oleh perusahaan Tidak cukup attractive digunakan oleh perusahaan Interaksi antara client ‐ server sangat erat Interaksi antara client‐server tidak terlalu erat Dalam hal implementasi, SOAP mendekati Restful sebagai penetapan development dari SOAP Web Service Tapi developers Restful Web Service membantah adanya interface yang fleksibel Jika terjadi perubahan pada service SOAP server, maka dari sisi client perubahannya cukup complicated dari code Jika terjadi perubahan service pada Restful server, perubahan dari sisi client tidak begitu signifikan SOAP memiliki payload yang lebih berat dibandingkan dengan Restful Restful memiliki payload yang lebih ringan dari SOAP Membutuhkan parsing binary Support untuk semua tipe data SOAP tidak termasuk infrastruktur Wireless Restful termasuk ke dalam infrastruktur wireless SOAP selalu memiliki return data bertipe XML Restful tidak selalu memberikan return data XML, tergantung format data yang telah disiapkan SOAP menggunakan lebih banyak bandwidth Restful tidak membutuhkan banyak bandwidth Permintaan SOAP request menggunakan POST dan memerlukan permintaan XML yang kompleks untuk memberikan response Restful dapat dikonsumsi menggunakan permintaan GET, dan permintaan response nya sangat mudah SOAP menggunakan HTTP yang bereferensi terhadap API yang telah disiapkan. Tipe response berupa XML / JSON Restful standarisasinya menggunakan URL Language, platform, and transport agnostic Language and platform agnostic Didesain untuk menangani sistem komputer terdistribusi Didesain bukan untuk menangani sistem komputer terdistribusi Sulit untuk di develop 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
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
(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
26
2.4 Literature Review
Berikut adalah daftar literature review yang digunakan dalam penelitian ini:
Tabel 2.2 Literature Review
No Judul Penulis Tahun Korelasi
1
REST: From Research to Practice
Adamczyk, P., Smith, P. H., Johnson, R. E., &
Hafiz, M 2011
Format penulisan URL untuk melakukan akses ke Restful Web Service
2
A Review and Analysis of Software Complexity Metrics in Structural Testing Debbarma, Debbarma, Debbarma,
Chakma, & Jamatia 2013
Beberapa cara yang dapat digunakan untuk mengukur tingkat kesulitan sebuah sistem
3
Oracle Identity Management
11g Marc, C 2010 Peranan Oracle Identity Management dalam melakukan manajemen user di dalam suatu perusahaan 4
Web Services Based On SOAP and REST Principles
Mumbaikar, S., & Padiya, P 2013 Pembangunan SOAP Web Service dan Restful Web Service yang baik 5 Web-Based Applications quality factors: A survey and a proposed conceptual model
Nabil, D., Mosad,
A., & Hefny, H 2011
Kualitas suatu sistem dari perspektif pengembang
6
Oracle Identity Manager
Migration Guidelines Oracle 2011
Petunjuk dalam pembangunan Oracle Identity Management 7 Identification of Performance Improving Factors for Web Application by Performance Testing
Patil, S. S., & Joshi,
S 2012
Pengujian sistem dalam kondisi maksimum 8
Oracle Identity Manager Connector Concepts
Prakash, A., Datta,
D., & Vadassery, L 2009 Oracle Identity Management Connectors 9 EARLY PERFORMANCE PREDICTION OF WEB SERVICES Reddy, C. R., Geetha, D. E., &
Srinivasa, K 2011
Penjelasan tentang penggunaan Web Service
10
Identity Management in an
enterprise setting Rouse, M 2012
Peningkatan pengelolaan keamanan dan
sistem
11
Identity Management Series
– Role- and Rule-Basing Santarcangelo, M 2012
Pentingnya authentication dan authorization pada suatu sistem 12 ANALYSIS ON IDENTITY MANAGEMENT SYSTEMS WITH EXTENDED STATE-OF-THE-ART IDM TAXONOMY FACTORS Srinivasan & Rodrigues 2010 Perbandingan produk Identity Management System berdasarkan fitures dan capabilities 13 A Comparative Study of SOAP Vs REST Web Services Provisioning
Wagh, K., & Thool,
R 2012
Perbandingan SOAP Web Service dengan Restful Web Service
14
The ABCs of Identity
Management Waters, J. K 2012
Pentingnya manajemen privilledge user pada suatu sistem