Hello guys,,,,
Ini blog dibuat sebagai bentuk realisasi tugas siswa pada Matapelajaran ICT @ SMA Negeri 8 Tangerang, so.... mudah2an dapat bermanfaat...


Trims
Dina

Step by Step Membuat Server Single Sign On – SSO

Apa sih SSO ?

Pengertian SSO adalah Sebuah sistem authentifikasi terhadap user dengan sekali login akan bisa mengakses beberapa aplikasi tanpa harus login di masing-masing aplikasi. Memiliki 2 bagian yaitu Single Sign On (login satu aplikasi, maka aplikasi lain yang didefinisikan ikut dalam SSO otomatis akan bisa diakses) dan Single Sign Out (log out di satu aplikasi, maka semua aplikasi yang didefinisikan ikut dalam SSO akan ikut logout secara otomatis.

Beberapa waktu yang lalu, ditempat aku bekerja ingin mengimplementasikan sistem login dan logout yang terpusat. Terpusat di sini dalam pengertian :

  1. Login satu aplikasi, otomatis aplikasi lain sudah login, logout dari satu aplikasi, otomatis aplikasi lain ikut logout. Ditempat kami, memiliki banyak aplikasi berbasis web yang saat ini memiliki sistem authentifikasi user sendiri-sendiri.
  2. Dari banyak aplikasi, diharapkan hanya memiliki satu sistem user management. Kalau biasanya satu sistem aplikasi memiliki satu sistem user management sendiri, sekarang saya diminta untuk bagaimana agar banyak aplikasi tetapi sistem usernya terpusat atau satu saja.
  3. Apapun bahasa pemrogramannya, dapat mengenali sistem user management yang aku buat. Baik Java, PHP, .NET

Yang dimaksud dengan user management adalah : Sistem yang mengatur segala sesuatu tentang akses seorang user terhadap sebuah atau beberapa aplikasi, mulai dari login, menu apa saja yang di dapatkan, group user apa yang dimiliki sampai masalah hak akses, apakah boleh mengakses fitur ini dan itu.

Pengertian Single sign on dan sign out adalah akses login dan logout oleh seorang user terhadap banyak aplikasi web menggunakan satu komputer + satu browser. Artinya dari sebuah browser di sebuah komputer, user hanya membutuhkan sekali sign in untuk mengakses banyak aplikasi aplikasi dan sekali sign out untuk keluar dari semua aplikasi

Sebenarnya sudah ada software baik yang bayar ataupun opensource yang bisa digunakan untuk mengimplementasikan SSO secara instant. Contoh yang sempat di oprek adalah JOSSO (Java Open Single Sing On). Tetapi masalah yang aku hadapi adalah :

  1. Multi user management (sebelumnya sudah ada banyak sistem authentifikasi user dari masing-masing aplikasi)
  2. Multi domain/multi server aplikasi. Misalnya server aplikasi A di data center sendiri, server aplikasi B ada di colocation (sewa space server)
  3. Multi system akses, ada yang internet, ada yang intranet, dan ada yang vpn internet…

**pusing deh…. akhirnya aku putuskan untuk membangun environment SSO sendiri. Dengan riset ada sekitar 2 bulan, akhirnya aku bisa membuat sebuah model SSO yang memenuhi kebutuhan yang cukup komplek. Dari mulai multi user management, sampai multi domain/server.

**lha trus seperti apa aplikasinya ?

Itu dia, aku agak merasa nggak pede mau share di sini, soalnya belum teruji secara lebih adil, soalnya pengujian sistem SSO ini baru dilingkup kantor tempat aku bekerja. OK, setelah tadi panjang lebar aku cerita asal-muasal SSO ini, aku mau share bagaimana aku membuat SSO ini.

Oh iya, istilah SSO yang aku gunakan bukan cuma Single Sign On tetapi juga Single Sign Out :mrgreen:

AHSANFILE SSO
Kayaknya lebih enak kalau aku beri nama dengan Ahsanfile SSO :D narsis biar lebih mudah dalam pencarian (upsss siapa yang mau mencari yah ? )

Gambaran global dari Ahsanfile SSO (per 20 februari 2011)

  1. Aku menggunakan bahasa Java (J2EE 6) untuk membuat sistem SSO, dengan alasan lebih luas implementasinya, lebih banyak pilihan application servernya, lebih mudah untuk dikembangkan.
    fffffffff
  2. Terdiri dari 2 bagian utama :
    1. SSO Server : Untuk menangani sistem
      - log in,
      - log out,
      - singkronasi session dan coockies antar server aplikasi
    2. User Management Service
      Memiliki dua pilihan yang bisa digunakan salah satu atau digunakan secara bersamaan. 
      1. Internal Credential Service
        Untuk menghandle suply informasi user terhadap aplikasi-aplikasi internal (jika aplikasi-aplikasi yang kita bangun akan menggunakan single user management)
      2. External Credential Service
        Sebagai komunikator antar sistem user management (jika masing-masing aplikasi memiliki sistem user management sendiri-sendiri)
  3. Dapat digunakan atau diakses oleh bahasa pemrograman lain seperti PHP dengan syarat harus menggunakan SSO client yang disediakan. SSO client berfungsi untuk berkomunikasi dengan server SSO untuk keperluan login, logout, sinkronasi session dan coockies. Sampai saat ini, SSO Client yang sudah bisa diimplementasikan untuk aplikasi yang dibuat menggunakan :
    1. Java
    2. PHP
      Untuk bahasa pemrograman lain (akan menyusul : jika dibutuhkan)
  4. Dapat menggunakan sistem user management yang berbeda-beda. Maksudnya antara SSO server dan User Management Service adalah terpisah sehingga tidak saling mengikat. Tetapi pada saat deployment aplikasi akan menjadi satu sistem. Keuntungannya adalah tidak perlu membuat sistem user management baru dalam rangka implementasi SSO ini,Yang perlu dilakukan adalah membuat identifier jika SSO akan menghandle lebih dari satu sistem user management.
  5. Effort yang perlu dilakukan dalam rangka implementasi SSO
    1. Menyediakan satu SSO Server dalam arsitektur J2EE 6
      - bisa menumpang pada server web yang sudah ada;
      - atau menyediakan secara khusus (dedicated : recomended)
    2. Mengupdate kode pengecekan session pada tiap-tiap aplikasi mengikuti model pengecekan SSO
    3. Menggunakan SSO Client pada aplikasi yang mengimplementasi SSO agar bisa berkomunikasi dengan SSO Server
    4. (pilihan) Jika menggunakan user management terpusat, harus mengubah cara akses user credential dari sso server yang tadinya menggunakan sistem sendiri
    5. (pilihan) Jika ingin mempertahankan user maangement sendiri, dan ingin bergabung dengan SSO yang juga memiliki user management, maka harus menambahkan pengenal antar user management agar bisa dikenali oleh SSO server.
  6. Dapat digunakan dalam lingkup multi domain atau multi application server. Misalnya aplikasi A di server www.insw.go.id, sementara aplikasi B ada di server www.kemenkes.go.id,Contoh lain aplikasi A berada di ip adreess 10.0.0.1 dan aplikasi B berada di ip adress 192.168.202.1

**waduh, udah panjang banget neh artikel… (ayo tetep semangat baca)

Selanjutnya berikut ini gambar topologi Ahsanfile SSO :

0 komentar:

Posting Komentar

It's Me @Delta

Get snow effect

Guest Book


SMA Negeri 8 Tangerang meniliki status yang sudah diakui menjadi SMA Negeri di kota tangerang dengan NSS: 20606814 yang beralamatkan di Jl. Besi Raya Perumnas II Tangerang kelurahan Cibodas, berkecamatan di cibodas Kabupaten Tangerang provinsi Banten. Kode Pos: 15138, tlp: Telepon.(021) 5565 7434, Fax.(021) 5915311 Wibsite resmi dari SMA 8 Tangerang http://www.sman8tangerang.sch.id dan email:sman8tangerang@yahoo.co.id

Another Templates

Followers