Instalasi dan Konfigurasi simpleSAMLphp
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Instalasi dan Konfigurasi simpleSAMLphp

  • 821 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
821
On Slideshare
761
From Embeds
60
Number of Embeds
2

Actions

Shares
Downloads
27
Comments
0
Likes
0

Embeds 60

http://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 59
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Instalasi dan Konfigurasi simpleSAMLphp OpenThink Labs Workshops Membangun Platform Single Sign On (SSO) berbasis Security Assertion Markup Language (SAML) Wildan Maulana <wildan.m@openthinklabs.com> Kamis 8 November 2012Daftar IsiDokumentasi dan Berita terkait simpleSAMLphp.....................................................................................3Versi Pengembangan..................................................................................................................................3Prasyarat.....................................................................................................................................................3Download dan Instalasi simpleSAMLphp.................................................................................................3Melakukan upgrade dari versi sebelumnya ke versi terbaru simpleSAMLphp.........................................4 Mengupgrade File-File Konfigurasi......................................................................................................4 Mengupgrade File-File Metadata..........................................................................................................5Mengkonfigurasi Apache...........................................................................................................................5Mengkonfigurasi simpleSAMLphp : config.php.......................................................................................6Mengkonfigurasi PHP................................................................................................................................6 Mengirim e-mail dari PHP....................................................................................................................6Module-Module Bawaan yang Tersedia....................................................................................................7 adfs........................................................................................................................................................7 aggregator..............................................................................................................................................7 aggregator2............................................................................................................................................7 aselect....................................................................................................................................................7 authcrypt................................................................................................................................................7 authfacebook.........................................................................................................................................7 authlinkedin...........................................................................................................................................8 authmyspace..........................................................................................................................................8 authorize................................................................................................................................................8 authtwitter..............................................................................................................................................8 authwindowslive....................................................................................................................................8 authX509...............................................................................................................................................8 authYubiKey..........................................................................................................................................8 autotest...................................................................................................................................................9 cas..........................................................................................................................................................9 casserver................................................................................................................................................9 cdc.........................................................................................................................................................9 consent...................................................................................................................................................9 consentAdmin........................................................................................................................................9 1
  • 2. consentSimpleAdmin............................................................................................................................9 core......................................................................................................................................................10 cron......................................................................................................................................................10 discojuice.............................................................................................................................................11 discopower...........................................................................................................................................11 exampleattributeserver........................................................................................................................11 exampleauth.........................................................................................................................................11 expirycheck..........................................................................................................................................11 InfoCard...............................................................................................................................................11 ldap......................................................................................................................................................11 logpeek................................................................................................................................................11 memcacheMonitor...............................................................................................................................11 metaedit...............................................................................................................................................11 metarefresh..........................................................................................................................................11 modinfo...............................................................................................................................................12 multiauth..............................................................................................................................................12 oauth....................................................................................................................................................12 openid..................................................................................................................................................12 openidProvider....................................................................................................................................12 portal....................................................................................................................................................12 preparedwarning..................................................................................................................................12 radius...................................................................................................................................................12 saml.....................................................................................................................................................12 saml2debug..........................................................................................................................................12 sanitycheck..........................................................................................................................................13 smartnameattribute..............................................................................................................................13 sqlauth.................................................................................................................................................13 statistics...............................................................................................................................................13 themefeidernd......................................................................................................................................13Mengaktifkan Module..............................................................................................................................13Halaman web instalasi simpleSAMLphp.................................................................................................13 Peringatan............................................................................................................................................14 Mengaktifkan Modul Sanity Check....................................................................................................14 Memerika environment PHP Anda......................................................................................................14Langkah Selanjutnya................................................................................................................................14Dukungan ................................................................................................................................................14Instalasi simpleSAMLphp di Lokasi Alternatif.......................................................................................15 Tip........................................................................................................................................................15 Catatan.................................................................................................................................................15Referensi .................................................................................................................................................15 2
  • 3. Dokumentasi dan Berita terkait simpleSAMLphpDokumentasi ini merupakan saduran dari dokumentasi resmi simpleSAMLphp dan merupakan bagiandari serangkaian dokumentasi lainnya terkait simpleSAMLphp. • Daftar lengkap dokumentasi resmi simpleSAMLphp, http://simplesamlphp.org/docs/stable/ • Berita terbaru mengenai simpleSAMLphp, https://rnd.feide.no/category/simplesamlphp/ • Homepage simpleSAMLphp, http://simplesamlphp.org/Versi PengembanganPrasyarat • Webserver yang dapat mengeksekusi script PHP • Versi PHP yang digunakan >= 5.2.0 • Mendukung beberapa ekstensi PHP berikut : ◦ Selalu memerlukan : date, dom, hash, libxml, openssl, pcre, SLP dan zlib ◦ Ketika mengenkripsi assertions : mcrypt ◦ Ketika melakukan autentifikasi ke server LDAP : ldap ◦ Ketika melakukan autentifikasi ke server RADIUS : radius ◦ Ketika menyimpan informasi session ke server memcache : memcache ◦ Ketika menggunakan database : ▪ Selalu : PDO ▪ Driver database : (mysql, pgsql, ...)Paket software yang perlu diinstall bervarisai dari satu platform dan distribusi ke platform dandistribusi lainnya. Silahkan baca dokumentasi platform dan distribusi sistem operasi Anda.Download dan Instalasi simpleSAMLphpRilis terbaru simpleSAMLphp dapat ditemukan dialamat : http://code.google.com/p/simplesamlphp/.Untuk mendownload versi stabil terbaru, download saja file arsip yang berada pada bagian FeaturedDownload. 3
  • 4. Masuklah ke direktori dimana Anda ingin menginstall simpleSAMLphp, dan ekstraklah file arsip yangbaru saja Anda download :cd /opttar xzf simplesamlphp-1.x.y.tar.gzmv simplesamlphp-1.x.y simplesamlphpMelakukan upgrade dari versi sebelumnya ke versi terbaru simpleSAMLphpEkstrak versi baru simpleSAMLphp :cd /opttar xzv simplesamlphp-1.x.y.tar.gzCopy file-file konfigurasi dari versi sebelumnya :cd /opt/simplesamlphp-1.x.yrm -rfv config metadatacp -rfv ../simplesamlphp/config configcp -rfv ../simplesamlphp/metadata metadataGantilah versi yang lama dengan versi yang baru :mv simplesamlphp simplesamlphp.oldmv simplesamlphp-1.x.y simplesamlphpJika format file-file config dan metadata berubah dari versi lama simpleSAMLphp yang Anda gunakan(periksalah log revisi), Anda mungkin harus mengupdate konfigurasi dan metadata Anda setelahmengupdate kode simpleSAMLphp.Mengupgrade File-File KonfigurasiPendekatan terbaik untuk melakukan hal ini adalah dengan manjalankan diff antara versiconfig.php Anda yang lama dan config.php yang baru yang berada pada config-templates/config.php dan lakukanlah modifikasi yang diperlukan pada template yang baru. 4
  • 5. Dengan cara ini, maka dapat dipastikan semua entri pada versi terbaru config.php akan terbawa,dan sekaligus menyimpan hasil modifikasi yang telah Anda lakukan.Mengupgrade File-File MetadataKemungkinan besar format metadata tidak akan mengalami perubahan. Jika memang ia mengalamiperubahan, Anda akan menerima pesan error yang jelas saat proses startup yang mengindikasikanbagaimana dan apa yang harus Anda update. Anda sebaiknya melihat isi metadata yang berada didirektori metadata-templates setelah proses upgrade untuk melihat apakah nilai default yangdirekomendasika telah berubah.Mengkonfigurasi ApacheContoh dibawah mengasumsikan kalau simpleSAMLphp diinstall di lokasi default,/opt/simplesamlphp. Anda bisa saja memiliki lokasi yang berbeda, tapi Anda harus mengubahkonfigurasi jika ingin melakukan hal ini.Subdirektori simplesamlphp yang harus dapat diakses via web hanya direktori www saja. Ada beberapacara untuk menyimpan simpleSAMLphp tergantun kepada struktur web sites Anda di Apache. Salahsatu konfigurasi terbaik adalah dengan menggunakan Alias, khususnya jika simpleSAMLphp dijadikansebagai Service Provider.Buka file konfigurasi Virtual Host yang ingin Anda gunakan untuk menjalankan simpleSAMLphp.Konfigurasinya akan seperti berikut (sesuaikan dengan kebutuhan Anda) :<VirtualHost *> ServerName service.example.com DocumentRoot /var/www/service.example.com Alias /simplesaml /opt/simplesamlphp/www</VirtualHost>Perhatikan directive Alias, semua url yang sesuai dengan http(s)://services.example.com/simplesaml/*akan ditangani oleh simpleSAMLphp. Secara default simpleSAMLphp menawarkan beberapainterface, yang semuanya berada didalam direktori www dari lokasi instalasi simpleSAMLphp Anda.Anda dapat menggunakan Alias apa saja, tetapi Anda harus mengubah 1 entri konfigurasi diconfig/config.php, yaitu :$config = array ([...] baseurlpath => simplesaml/, 5
  • 6. Mengkonfigurasi simpleSAMLphp : config.phpAda beberapa konfigurasi di config.php yang harus Anda segera ubah : 1. Mengeset password Administrator. Hal ini diperlukan agar dapat mengakses beberapa halaman di antar muka instalasi simpleSAMLphp auth.adminpassword => setnewpasswordhere, 2. Mengeset secret salt. Yaitu sebuah string acak. Beberapa bagian dari simpleSAMLphp memerlukan salt ini. SimpleSAMLphp akan menampilkan pesan error jika salt ini belum diubah dari nilai defaultnya. Perintah berikut akan membantu Anda untuk menggenerate string acak pada (beberapa) sistem Unix : tr -c -d 0123456789abcdefghijklmnopqrstuvwxyz </dev/urandom | dd bs=32 count=1 2>/dev/null;echo Berikut ini adalah contoh opsi konfigurasinya : secretsalt => randombytesinsertedhere, 3. Mengeset informasi kontak teknikal. Informasi ini akan tersedia pada metadata yang digenerate. Alamat e-mail juga akan digunakan untuk menerima pesan error yang dikirimkan secara otomatis oleh simpleSAMLphp. Berikut adalah contohnya : technicalcontact_name => Wildan Maulana, technicalcontact_email => wildan.m@openthinklabs.com, 4. Mengeset timezone yang Anda gunakan : timezone => Asia/Jakarta,Mengkonfigurasi PHPMengirim e-mail dari PHPPastikan konfigurasi instalasi PHP Anda dapat mengirim email, karena beberapa bagiansimpleSAMLphp memerlukan hal ini. 6
  • 7. Module-Module Bawaan yang TersediaadfsMerupakan module yang mengimplementasikan protokol Active Directory Federation Services (ADFS)untuk Identity Provider.aggregatorModule ini mangaggregate sekumpulan entitas SAML menjadi dokumen SAML 2.0 denganEntitiesDescriptor yang memiliki beberapa entitas didalamnya.Informasi lebih lanjut, http://simplesamlphp.org/docs/stable/aggregator:aggregatoraggregator2Merupakan module eksperimental untuk mengaggregate metadata.Informasi lebih lanjut, http://simplesamlphp.org/docs/stable/aggregator2:aggregator2aselectModule yang memungkinkan anda untuk menggunakan sumber autentifikasi A-Select melaluisimpleSAMLphp.Untuk informasi lebih lanjut tentang module ini silahkan bacahttp://simplesamlphp.org/docs/stable/aselect:aselect, sedangkan untuk A-Select, Anda dapat membacahttp://www.aselect.org/home.htmlauthcryptModule ini memungkinkan anda untuk menggunakan sumber autentifikasi username dan passwordyang dihash atau sumber autentifikasi yang berupa file Htpasswd Apache.authfacebookDengan module ini anda dapat menggunakan sumber autentifikasi Facebook dengan simpleSAMLphp.Untuk informasi lebih lanjut, silahkan bacahttp://simplesamlphp.org/docs/stable/authfacebook:authfacebook 7
  • 8. authlinkedinDengan module ini anda dapat menggunakan sumber autentifikasi LinkedIn. Jika anda mengaktifkan,module ini, jangan lupa untuk mengaktifkan juga module oauth, karena jika tidak, anda akanmendapatkan error seperti berikut :simplesaml Fatal error: Class sspmod_oauth_Consumer not found in...Untuk informasi lebih lanjut, silahkan bacahttp://simplesamlphp.org/docs/stable/authlinkedin:oauthlinkedinauthmyspaceDengan module ini Anda dapat menggunakan MySpace sebagai sumber autentifikasi. Untuk informasiselanjutnya, silahkan lihat baca http://simplesamlphp.org/docs/stable/authmyspace:oauthmyspace.authorizeModul ini menyediakan filter autorisasi yang berdasarkan regex khususnya untuk aplikasi-aplikasi yangtidak secara tegas memisahkan antara autentifikasi dan autorisasi.Untuk informasi lebih lanjut mengenai modul ini silahkan lihat,http://simplesamlphp.org/docs/stable/authorize:authorizeauthtwitterDengan menggunakan modul ini Anda dapat menggukana twitter sebagai sumber autentifikasi. Untukinformasi lebih lanjut tentang module ini, silahkan kunjungi,http://simplesamlphp.org/docs/stable/authtwitter:oauthtwitterauthwindowsliveDengan module ini Anda dapat menggunakan Windows Live ID sebagai sumber autentifikasi. Untukinformasi lebih lanjut tentang module ini, silahkan bacahttp://simplesamlphp.org/docs/stable/authwindowslive:windowsliveid.authX509Dengan module ini, Anda dapat menggunakan X509 sebagai sumber autentifikasi. Untuk informasilebih lanjut, silahkan baca http://simplesamlphp.org/docs/stable/authX509:authX509authYubiKeyDengan menggunakan module ini, Anda dapat menggunakan authYubiKey sebagai sumberautentifikasi. Untuk informasi lebih lanjut, silahkan bacahttps://rnd.feide.no/2009/01/17/yubikey_authentication_module_in_simplesamlphp/ 8
  • 9. autotestModule ini menyediakan antarmuka untuk melakukan testing otomatis dari berbagai sumberautentifikasi. Untuk informasi lebih lanjut mengenai modul ini, silahkan kunjungi :http://simplesamlphp.org/docs/stable/autotest:testcasDengan menggunakan module ini, Anda dapat menggunakan CAS (Central Authentication Service)sebagai sumber autentifikasi. Untuk informasi lebih lanjut mengenai modul ini silahkan baca :http://simplesamlphp.org/docs/stable/cas:cascasserverDengan menggunakan module ini, Anda dapat menggunakan simpleSAMLphp sebagai CAS Server,untuk informasi lebih lanjut silahkan baca, http://bit.ly/xZUzaNcdcModule ini digunakan untuk mendukung apa yang disebut dengan Common Domain Cookie. Moduleini digunakan untuk mengeset dan membaca Common Domain Cookies.consentModul consent (persetujuan) diiplementasikan sebagai filter pemroses autentifikasi. Modul ini dapatdikonfigurasikan di file config.php global atau pada file metadata SP Remote atau IdP hosted.Modul ini telah diaktifkan secara default, untuk mengetahui lebih lanjut mengenai modul consent,silahkan baca http://simplesamlphp.org/docs/stable/consent:consentconsentAdminModul consentAdmin merupakan addon bagi modul consent. Ini artinya, Anda tidak dapatmenggunakan modul consentAdmin tanpa mengaktifkan modul consent. Modul consentModule hanyabekerja jika modul consent menggunakan database untuk menyimpan consent.Untuk membaca informasi lebih jauh mengenai modul consentAdmin, silahkan baca,http://simplesamlphp.org/docs/stable/consentAdmin:consentAdmin.consentSimpleAdminKurang lebih memiliki fungsi yang sama dengan consentAdmin, tetapi ketika penulis menulisdokumentasi ini, apa saja perbedaan fitur di consentAdmin dan consentSimpleAdmin masih belumdicoba. 9
  • 10. coreModul ini merupakan modul inti dari simpleSAMLphp yang tentu saja telah diaktifkan secara default.Pada modul ini terdapat beberapa pemroses autentifikasi default, diantaranya adalah : • core:AttributeAdd: Menambahkan attribut-attribut ke response. http://simplesamlphp.org/docs/stable/core:authproc_attributeadd • core:AttributeAlter: Mencari dan mengganti nilai sebuah attribut. http://simplesamlphp.org/docs/stable/core:authproc_attributealter • core:AttributeLimit: Membatasi attribute pada respons. http://simplesamlphp.org/docs/stable/core:authproc_attributelimit • core:AttributeMap: Mengubah nama dari attribut. http://simplesamlphp.org/docs/stable/core:authproc_attributemap • core:AttributeRealm: Membuat attribut dengan realm dari user. http://simplesamlphp.org/docs/stable/core:authproc_attributerealm • core:GenerateGroups: Menggenerate attribut group untuk user.http://simplesamlphp.org/docs/stable/core:authproc_generategroups • core:LanguageAdaptor: Mentransfer setingan bahasa dari IdP ke SP. http://simplesamlphp.org/docs/stable/core:authproc_languageadaptor • core:PHP: Memodifikasi attribut dengan kode PHP yang dibuat sendiri. http://simplesamlphp.org/docs/stable/core:authproc_php • core:ScopeAttribute: Menambahkan scope ke attribut. http://simplesamlphp.org/docs/stable/core:authproc_scopeattribute • core:ScopeFromAttribute: Membuat attribut baru yang berdasarkan pada scope pada attribut yang berbeda. http://simplesamlphp.org/docs/stable/core:authproc_scopefromattribute • core:StatisticsWithAttribute: Membuat statistic logentry. http://simplesamlphp.org/docs/stable/core:authproc_statisticswithattribute • core:TargetedID: Menggenerate attribute eduPersonTargetedID. http://simplesamlphp.org/docs/stable/core:authproc_targetedid • core:WarnShortSSOInterval: Memberikan peringatan jika user log in ke SP yang sama dalam selang beberapa detik. http://simplesamlphp.org/docs/stable/core:authproc_warnshortssointervalcron... 10
  • 11. discojuice...discopower...exampleattributeserver...exampleauth...expirycheck...InfoCard...ldapDengan modul ini Anda dapat melakukan autentifikasi terhadap server LDAP.logpeek...memcacheMonitor....metaedit...metarefresh... 11
  • 12. modinfo...multiauthModul ini menyediakan sebuah metode agar user dapat memilih sumber autentifikasi dari daftar yangada.oauth...openid...openidProviderSimpleSAMLphp dapat berfungsi sebagai provider OpenID. Dengan ini, maka Anda dapatmengintegrasikan OpenID ke IdP yang telah ada, atau menambahkan bridge antara OpenID dan SAML2.0portal...preparedwarning..radiusDengan modul ini Anda dapat menggunakan server radius sebagai sumber autentifikasi.saml...saml2debug... 12
  • 13. sanitycheck...smartnameattribute...sqlauth...statistics...themefeidernd...Mengaktifkan ModuleJika Anda ingin mengaktifkan beberapa module yang diinstall bersama simpleSAMLphp, tetapi secaradefault dinonaktifkan, Anda harus membuat sebuah file kosong di direktori module yang tersebut yangdiberi nama enable.# Mengaktifkan modul consentcd modulesls -lcd consenttouch enableJika nanti Anda ingin menonaktifkan module, ubah nama file enable menjadi disable.cd modules/consentmv enable disableHalaman web instalasi simpleSAMLphpSetelah proses instalasi simpleSAMLphp, Anda dapat mengakses homepage instalasi Anda, yang berisi 13
  • 14. beberapa informasi dan beberapa link untuk mengetes layanan yang ada. Jika mengikuti konfigurasidiatas, maka simleSAMLphp dapat diakses dengan alamat :https://service.example.org/simplesaml/Tentu saja, link diatas tergantung dari konfigurasi Anda.PeringatanJangan mengklik link yang ada, karena Anda belum mengeset apakah Anda ingin mengkonfigurasisimpleSAMLphp akan menjadi Service Provider atau sebagai Identity Provider.Mengaktifkan Modul Sanity CheckUntuk melakukan Sanity Check pada setup simpleSAML yang sudah kita lakukan, maka kita harusmeng-copy file konfigurasi Sanity Check :(npsimplesamlasidp) cp modules/sanitycheck/config-templates/config-sanitycheck.php config/Memerika environment PHP AndaPada bagian bawah halaman instalasi ada beberapa tanda berwarna hijau. SimpleSAMLphpmenjalankan beberapa tes untuk melihat apakah prasyarat yang diperlukan dan direkomendasikan telahdipenuhi. Jika ada tanda yang berwarna merah, Anda mungkin perlu menambahkan beberapa ekstensiatau module ke PHP, seperti misalnya Anda memerlukan ekstensi LDAP PHP agar dapat menggunakanmodule autentifikasi LDAP.Langkah Selanjutnya 1. Menggunakan simpleSAMLphp sebagai SAML Service Provider 2. Menggunakan simpleSAMLphp sebagai Identitiy ProviderDukunganBeberapa situs komunitas simpleSAMLphp : • homepage simpleSAMLphp, http://rnd.feide.no/simplesamlphp • Daftar dokumentasi lengkap simpleSAMLphp berbahasa Inggris, http://simplesamlphp.org/docs/ • Bergabung ke mailing list pengguna simpleSAMLphp, http://rnd.feide.no/content/simplesamlphp-users-mailinglist 14
  • 15. • Wiki simpleSAMLphp, https://ow.feide.no/simplesamlphp:startInstalasi simpleSAMLphp di Lokasi AlternatifTipCatatanReferensi 1. simpleSAMLphp Installation and Configuration, http://simplesamlphp.org/docs/stable/simplesamlphp-install 2. Authentication and identity services the Simple way, http://www.eifl.net/news/authentication- and-identity-services-simple-w 3. SMAL vs Shibboleth vs CAS, http://bit.ly/waznTY 4. Security Assertion Markup Language(SAML) V2.0 Technical Overview, http://bit.ly/84Sa1u 15