Build SAML Server Untuk SSO Google Apps

Security Assertion Markup Language (SAML, pronounced sam-el[1]) is an XML-based, open-standard data format for exchanging authentication and authorization data between parties, in particular, between an identity provider and a service provider. SAML is a product of the OASIS Security Services Technical Committee. SAML dates from 2001; the most recent major update of SAML was published in 2005, but protocol enhancements have steadily been added through additional, optional standards. https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language

requierements:

  • System Operasi dengan Webserver yang bisa menghandle php scripts
  • PHP versi >= 5.2 , dengan support PHP Extension:
  • date, dom, hash, libxml, openssl, pcre, SPL, zlib
  • php mcrypt untuk enkripsi assertion.
  • php ldap untuk authentikasi ldap

Pada percobaan kali ini menggunakan OS Ubuntu 12.04.5 LTS dengan webserver nginx, php-fpm dan dengan menggunakan Simple SAML PHP https://simplesamlphp.org . Pastikan semuanya terinstall dengan baik. clone source code simple saml php:

git clone https://github.com/simplesamlphp/simplesamlphp

kopi config-templates dan metadata-templates

# cp -a config-templates config
# cp -a metadata-templates metadata

edit file config/config.php, config/ldap.php dan config/authsources.php lalu simpan. edit file metadata/saml20-idp-hosted.php dan saml20-sp-remote.php lalu simpan.

masuk ke admin google apps lalu edit konfig seperti ini:

ssoapps

lalu simpan dan testing:

buka url accounts.google.com/ServiceLoginAuth . masukan username: misal user@abc.co.id dan klik login akan terbuka url seperti gambar berikut:

ssobox

isi username dan password seperti dalam contoh gambar diatas, lalu klik login. Jika berhasil akan terbuka halaman seperti berikut:

successlogin

selesai