Single
Sign-On
menghindari
login
ganda
dengan
cara
6
Universitas Sumatera Utara
Pengguna layanan dapat lebih menyukai sistem Single Sign-On dari pada
sistem sign-on biasa, namun pengelola layanan jaringan memiliki banyak tugas
tambahan yang harus dilakukan, seperti perlunya perhatian ekstra untuk menjamin
bukti-bukti otentikasi agar tidak tersebar dan tidak disadap pihak lain ketika
melintasi jaringan. Secara umum gambaran perbedaan sistem Single Sign-On dan
sistem sign-on dapat dilihat pada Gambar 2.1.
Gambar 2.1 (a) Gambaran Sistem Sign-On dan (b) Gambaran Sistem Single Sign-On
2.
3.
4.
2.
3.
4.
Titik Kegagalan Tunggal (Single point failure). Karena setiap layanan aplikasi
bergantung kepada sistem Single Sign-On, sistem ini dapat menjadi suatu titik
kegagalan bila tidak dirancang dengan baik. Kondisi apapun yang dapat
menyebabkan sistem SSO padam, mengakibatkan pengguna tidak dapat
mengakses seluruh layanan aplikasi yang dilindungi oleh sistem SSO
tersebut.
2.1.1
10
mengaplikasikan sistem SSO, maka dapat dipilih salah satu dari tiga pendekatan SSO
berikut:
1. Pendekatan Terpusat (Centralized Approaches)
Pendekatan ini mempunyai sebuah lokasi yang terpusat dimana seluruh
identifikasi
disimpan.
Server
SSO
bertindak
sebagai
perantara
untuk
11
12
web atau dikenal juga sebagai service provider (SP). Gambar 2.3 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 sistem SSO dalam hal
otentikasi pengguna dan penanganan sesi. Solusi dari arsitektur sistem SSO
ditunjukkan oleh Gambar 2.4.
13
Arsitektur Sistem SSO memiliki dua bagian utama, yaitu agent yang berada
di web server /Layanan aplikasi dan sebuah server SSO berdedikasi yang mana akan
dijelaskan berikut ini:
saat ini seperti CAS (Central Authentication Service), OpenAM (Open Access
Manager), dan JOSSO (Java Open Single Sign-On).
2.1.3
14
ranah publik dan untuk memfasilitasi sistem Single Sign-On untuk layanan aplikasi
web dalam server.
Keunggulan OpenAM dibandingkan produk SSO lainnya terletak pada
Agent yang dapat ditempatkan ke berbagai aplikasi server seperti Apache, Sun Java
System Web Server, Microsoft IIS, dan Domino. Konfigurasinya dapat dilakukan
dengan menulis otentikasi modul yang dilengkapi dengan keamanan layanan web
menggunakan SAML (Security Assertion Markup Language). OpenAM merupakan
pilihan yang tepat jika dibutuhkan dukungan terhadap lingkungan yang terpisah dan
memerlukan otentikasi menggunakan SSL (Secure Socket Layer).
OpenAM bekerja seperti gerbang utama pada sistem Single Sign-On, karena
terhubung langsung dengan pengguna dan seluruh aplikasi yang ada dalam jaringan.
OpenAM bekerja sama dengan aplikasi backend melakukan proses otentikasi dan
otorisasi berdasarkan database credential pengguna. Beberapa tipe aplikasi yang
sering dijadikan Backend database pada jaringan dengan OpenAM antara lain seperti
Kerberos, Active Directory, LDAP, OpenDS, NIS, dan MySql.
2.2 Kerberos
Kerberos adalah sebuah protokol sistem otentikasi yang dikembangkan dari
Proyek Athena di MIT. Ketika pengguna login, Kerberos mengotentikasi pengguna
tersebut (menggunakan kunci acak), dan memberikan pengguna suatu cara untuk
membuktikan identitasnya ke server dan host lain yang tersebar di jaringan.
Otentikasi ini kemudian digunakan oleh aplikasi seperti OpenAM untuk mengizinkan
pengguna login ke aplikasi lain tanpa password. Otentikasi yang digunakan oleh
15
Kerberos menjamin bahwa data dikirimkan kepada orang yang tepat, dan juga
menjamin bahwa pengirim adalah benar orang yang diklaimnya.
Kerberos pertama kali dikembangkan pada dekade 1980-an sebagai sebuah
metode untuk melakukan otentikasi terhadap pengguna dalam sebuah jaringan yang
besar dan terdistribusi. Protokol ini dinamai Kerberos, diangkat dari nama Cerberus
yang merupakan seekor anjing berkepala tiga (protokol Kerberos memiliki tiga
subprotokol) dalam mitologi Yunani yang menjadi penjaga Tartarus, gerbang menuju
alam kematian Hades (atau Pluto dalam mitologi Romawi).
Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya
adalah secara virtual menghilangkan kemampuan pengguna untuk menipu (spoof)
sistem agar mempercayai bahwa mereka adalah orang lain.
16
2.2.2
17
Jika
identitas
pengguna
berhasil
diverifikasi,
KDC
akan
meresponnya dengan memberikan TGT dan sebuah kunci sesi untuk mengakses
TGS dengan menggunakan protokol AS Exchange.
3. Pengguna selanjutnya mengirimkan permintaan yang terenkripsi dengan kunci
sesi ini kepada KDC, permintaan itu mengandung TGT yang sebelumnya
diterima dari KDC, dan identifier akses terhadap layanan aplikasi server target
dengan menggunakan protokol TGS Exchange.
4. KDC selanjutnya menerima permintaan, melakukan otentikasi terhadap layanan,
dan meresponsnya dengan memberikan sebuah tiket dan kunci sesi untuk
mengakses server target kepada pengguna dengan menggunakan protokol TGS
Exchange.
5. Pengguna selanjutnya mengirimkan permintaan terhadap server target yang
mengandung tiket yang didapatkan sebelumnya dengan menggunakan protokol
CS Exchange. Server target kemudian melakukan otentikasi terhadap tiket yang
bersangkutan, membalasnya dengan sebuah kunci sesi, dan pengguna pun
akhirnya dapat mengakses layanan yang tersedia dalam server.
Meski terlihat rumit, pekerjaan ini dilakukan di balik layar sehingga tidak
terlihat oleh pengguna. Sesi otentikasi Kerberos yang dilakukan antara pengguna dan
server dapat dilihat seperti Gambar 2.5.
18
19
dari pengguna, query dan berkomunikasi dengan database backend sedangkan slurpd
melayani replikasi data agar terus terjadi sinkronisasi data antara client dan server,
dan untuk memfasilitasi pengisian dan perubahan informasi data dalam direktori
digunakanlah LDIF (LDAP Data Interchange Format).
2.3.1
direktori dan apa fungsinya. Direktori dapat berupa personal address book, phone
book, yellow pages bahkan web direktori seperti Yahoo. Direktori dapat membantu
untuk menemukan informasi yang dibutuhkan, sebagai contoh yellow pages.
Di dalam yellow pages dapat dicari alamat lengkap, nomor telepon, alamat
website dan email dari suatu perusahaan hanya dengan mencarinya berdasarkan
nama dari perusahaan yang telah disusun secara alphabetis pada direktori yellow
pages. Dalam terminologi komputer, directory service bisa dikatakan sebagai suatu
database tempat penyimpanan data, yang dapat digunakan untuk memberikan
informasi-informasi yang berkaitan dengan objeknya. Bagian direktori mungkin
dapat berisi kumpulan informasi tentang pengguna seperti sure name, first name,
phone number, User ID, mail address dan lain sebagainya. Untuk memudahkan
pemahaman tentang konsep direktori ini, dijelaskan melalui model seperti Gambar
2.6.
20
Secara prinsip struktur database pada suatu directory service adalah hierarki
seperti yang ditunjukkan pada Gambar 2.6. Suatu directory service akan memiliki
item yang dijadikan sebagai root. Untuk sebuah titik root, secara umum ditunjukkan
dengan suatu attribut dc (Domain Component) atau o (Organization) mungkin juga
ou (Organization Unit). Kemudian pada titik daun (leaf) biasanya akan berisi item
dengan attribut uid (User ID) ataupun cn (Common Name). Directory service
biasanya menyimpan informasi dalam bentuk struktur tree yang dinamakan
Directory Information Tree (DIT). Setiap titik pada DIT diberi suatu alamat, baik
secara relatif maupun secara absolut. Untuk suatu alamat relatif sering disebut
sebagai RDN (Relative Distinguish Name) sedangkan alamat yang absolut di sebut
sebagai DN (Distinguish Name).
Jadi apabila ingin mendapatkan informasi tentang pengguna rsukmana seperti
contoh pada Gambar 2.6 diatas, dapat dituliskan hasil pencariannya dengan
dn=uid=rsukmana,ou=people,dc=smartbee,dc=com. Konsep seperti inilah yang
21
22
23
(Relative Distinguished Name/RDN) dengan menggabungkan nama-nama dari entrientri di atasnya atau sebelumnya. Operasi update yang ada, seperti untuk menambah
dan menghapus sebuah entri dari direktori, adalah mengubah entri yang ada dengan
mengubah nama dari entri tersebut. Sebagian besar waktu LDAP digunakan untuk
operasi mencari informasi dalam direktori (query). Operasi pencarian LDAP
memungkinkan beberapa bagian dari direktori untuk mencari entri-entri yang sama
dengan beberapa kriteria yang dispesifikasikan oleh filter search.
2.3.2
direktori X.500, yang merupakan layanan direktori yang diatur oleh OSI. Awalnya,
pengguna LDAP mengakses gateway ke layanan direktori X.500. Gateway ini
menjalankan LDAP di antara client dan gateway, dan menjalankan Protokol Akses
Direktori (Directory Access Protocol/DAP) X.500 antara gateway dan X.500 server.
DAP adalah sebuah protokol kelas berat yang beroperasi melalui tumpukan protokol
OSI secara penuh dan memerlukan pemrosesan yang sangat signifikan dari sumber
daya komputasi. LDAP didesain untuk beroperasi melalui TCP/IP dan menyediakan
sebagian besar dari fungsi DAP dengan biaya yang sangat lebih rendah.
LDAP adalah protokol yang digunakan untuk mengakses direktori X.500
directory service (OSI-nya layanan direktori). Inisialisasi LDAP server merupakan
gateway antara LDAP dengan X.500 Directory Access Protokol (DAP), sedangkan
DAP merupakan protokol heavy-weight yang mengoperasikan stack protokol OSI
secara penuh, konsekuensinya tentu saja sangat menyedot resource. LDAP hadir
24
dirancang menggunakan pendekatan protokol TCP/IP dikawinkan dengan fungsifungsi DAP sehingga fungsi DAP dapat dijalankan dengan lebih murah.
Dengan adanya fungsi-fungsi DAP pada LDAP, tentu saja sangat
meringankan pengaksesan X.500, tetapi tetap saja diperlukan pemakaian layanan
X.500 secara penuh untuk dapat membuat banyak data LDAP pada client. Sehingga
tetap diperlukan resource yang besar untuk memenuhi keperluan tersebut.
Service direktori LDAP berdasarkan model client-server. Satu atau lebih
server LDAP membentuk pohon (tree) direktori informasi. Client terkoneksi keserver dan mengajukan pertanyaan. Server merespon dengan jawaban dan / atau
dengan pointer, ke arah mana client dapat mendapat tambahan informasi (khususnya
keserver LDAP yang lain). Gambar 2.8 berikut menunjukkan proses koneksi dari
client ke server LDAP pertama dan server LDAP kedua yang ditunjuk oleh server
LDAP pertama.
Gambar 2.8 Koneksi dari Client ke Server LDAP Pertama dan Kedua
Tidak menjadi masalah pada server LDAP yang mana client akan terkoneksi.
Client tersebut akan mendapat informasi yang sama dari server direktori berupa
25
sebuah nama yang direpresentasikan ke satu LDAP server sebagai entri referensi
yang akan menunjuk ke server LDAP lainnya. Ini ciri khas penting bagi layanan
direktori global seperti LDAP.
Layanan direktori LDAP menyediakan proteksi keamanan yang dapat diatur
pada saat pengguna akan melihat suatu informasi. Ketika pengguna melewati proses
otentikasi atau login, pengguna yang tidak terotentikasi identitasnya, tidak memiliki
izin untuk melihat informasi (tidak terotorisasi), sedangkan pengguna yang telah
terotentikasi dapat melihat informasi sesuai dengan tingkatan otorisasi yang
dimilikinya.