SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Instalasi simpleSAMLphp sebagai Identity Provider (IdP)
                                                       OpenThink Labs Workshops
      Membangun Platform Single Sign On (SSO) berbasis Security Assertion Markup Language (SAML)


                                        Wildan Maulana <wildan.m@openthinklabs.com>
                                                  Kamis 8 November 2012


Daftar Isi
Berita dan Dokumentasi simpleSAMLphp................................................................................................3
Pendahuluan ..............................................................................................................................................3
Mengaktifkan Fungsionalitas Identity Provider.........................................................................................3
Menyiapkan SSL Signing Certificate.........................................................................................................3
Sumber Autentifikasi..................................................................................................................................4
Mengkonfigurasi Sumber Autentifikasi.....................................................................................................5
  Modul exampleauth...............................................................................................................................5
      exampleauth:UserPass......................................................................................................................5
      exampleauth:Static............................................................................................................................6
  Modul LDAP.........................................................................................................................................6
      ldap:LDAP........................................................................................................................................6
      ldap:LDAPMulti...............................................................................................................................9
      ldap:AttributeAddFromLDAP .........................................................................................................9
      ldap:AttributeAddUsersGroups........................................................................................................9
  sqlauth...................................................................................................................................................9
      sqlauth:SQL......................................................................................................................................9
  saml:SP................................................................................................................................................10
  authfacebook:Facebook.......................................................................................................................10
  authtwitter:Twitter...............................................................................................................................10
Mengkonfigurasi Metadata untuk SAML 2.0 IdP....................................................................................10
  Mengkonfigurasi SAML 2.0 IdP Hosted Metadata.............................................................................10
  Mengkonfigurasi SAML 2.0 SP Remote Metadata.............................................................................11
      Kalkun / Open Source Web Based SMS Management...................................................................12
      phpBB3...........................................................................................................................................12
      CI-CMS2........................................................................................................................................12
      MediaWiki......................................................................................................................................12
      SugarCRM .....................................................................................................................................12
      Wordpress.......................................................................................................................................12
      Moodle............................................................................................................................................12
      Google Apps...................................................................................................................................12
Melakukan Ujicoba untuk Login ...........................................................................................................13

                                                                             1
Pertimbangan Keamanan..............................................13
Dukungan.................................................................................................................................................13




                                                                            2
Berita dan Dokumentasi simpleSAMLphp
Untuk melihat dokumentasi lengkap terkait simpleSAMLphp Anda dapat mengunjungi beberapa
sumber berikut :
   •   Daftar lengkap Dokumentasi simpleSAMLphp, http://simplesamlphp.org/docs
   •   Berita terbaru terkait simpleSAMLphp, https://rnd.feide.no/category/simplesamlphp/
   •   Homepage simpleSAMLphp, http://rnd.feide.no/simplesamlphp

Pendahuluan
Artikel ini mengasumsikan kalau Anda telah membaca manual instalasi simpleSAMLphp dan telah
menginstall versi terbaru simpleSAMLphp di server Anda.

Pada contoh kali ini Kita akan menyiapkan server ini sebagai IdP untuk berbagai aplikasi yang akan
kita integrasikan nanti : http://idp.negeripelangi.org.


Mengaktifkan Fungsionalitas Identity Provider
Edit config/config.php, dan Aktifkan SAML 2.0 IdP :

'enable.saml20-idp' => true,
'enable.shib13-idp' => false,


Menyiapkan SSL Signing Certificate
Untuk tujuan percobaan, Anda dapat melewati bagian ini, dan menggunakan certificate default yang
sudah ada.

Untuk sistem yang sudah produktif, Anda harus membuat sendiri certificate untuk IdP Anda.

       Peringatan
       Paket software simpleSAMLphp memiliki certificate yang dapat Anda gunakan untuk tujuan
       percobaan, tetapi tentu saja, jangan sekali-kali menggunakan certificate ini pada sistem yang
       sudah produktif karena private key dari certificate ini juga disertakan didalam paket software
       simpleSAMLphp dan dapat didownload oleh siapa saja.

Berikut ini adalah sebuah contoh perintah openssl untuk membuat key baru dan selfsigned
certificate yang akan digunakan untuk men-signing SAML messages :

                                                   3
openssl req -newkey rsa:2048 -new -x509 -days 3652 -nodes -out
eofficeidp.crt -keyout negeripelangiidp.pem
Certificate diatas akan valid untuk 10 tahun.

Catatan : simpleSAMLphp hanya dapat bekerja dengan certificate RSA dan DSA.

Sumber Autentifikasi
Langkah selanjutnya adalah mengkonfigurasi bagaimana cara user melakukan autentifikasi ke IdP
Anda. Berbagai modul di direktori modules/ menyediakan berbagai metode untuk melakukan
autentifikasi user Anda. Berikut ini adalah ulasan sekilas tentang beberapa metode yang akan kita coba
gunakan :

exampleauth:UserPass
        Melakukan Autentifikasi terhadap daftar username dan password.

exampleauth:Static
     Secara otomatis log in sebagai user dengan attribute-attribute yang telah didefinisikan.

ldap:LDAP
     Melakukan autentifikasi terhadap server LDAP.

ldap:LDAPMulti
        Melakukan autentifikasi terhadap sebuah server LDAP dari beberap server LDAP yang telah
didaftarkan

sqlauth:SQL
       Melakukan autentifikasi terhadap RDBMS

saml:SP
      Melakukan autentifikasi terhadap SAML IdP.

authfacebook:Facebook
       Melakukan autentifikasi dengan Facebook ID.

authtwitter:Twitter
       Melakukan autentifikasi dengan akun Twitter Anda via API OAuth Twitter.

Pada konfigurasi di dokumentasi ini, Kita akan menggunakan modul autentifikasi sqlauth:SQL.




                                                        4
Mengkonfigurasi Sumber Autentifikasi

Modul exampleauth

exampleauth:UserPass
Modul autentifikasi Exampleauth:UserPass merupakan bagian dari modul exampleauth. Module
secara default tidak diaktifkan, jadi sebelum menggunakannya, Anda harus mengaktifkannya terlebih
dahulu. Untuk mengaktifkannya, buat file bernama enable pada direktori modules/exampleauth.
Di Linux Anda dapat melakukannya dengan menggunakan perintah berikut :
touch modules/exampleauth/enable
Langkah selanjutnya adalah membuat authentication source (sumber autentifikasi) untuk modul ini.
Sumber autentifikasi adalah sebuah module autentifikasi dengan konfigurasi khusus. Setiap sumber
autentifikasi memiliki sebuah nama, yang digunakan sebagai rujukan ketika melakukan konfigurasi
pada IdP. Konfigurasi untuk sumber autentifikasi dapat ditemukan di config/authsources.php.

Berikut adalah contoh konfigurasi sumber autentifikasi yang menggunakan module
exampleauth:UserPass :
<?php
$config = array(
    'example-userpass' => array(
        'exampleauth:UserPass',
        'student:studentpassword' => array(
            'uid' => array('student'),
            'eduPersonAffiliation' => array('member', 'student'),
        ),
        'employee:employeepassword' => array(
            'uid' => array('employee'),
            'eduPersonAffiliation' => array('member', 'employee'),
        ),
    ),
);

Konfigurasi ini membuat dua buah user, yaitu student dan employee dengan password masing-masing,
studentpassword dan employeepassword. Username dan password disimpan sebagai index dari sebuah
array sedangkan attribute setiap user dikonfigurasi dalam bentuk array dimana index array tersebut
menjadi referensinya. Untuk user student, atribut-atribut ini adalah :




                                                 5
array(
    'uid' => array('student'),
    'eduPersonAffiliation' => array('member', 'student'),
),

Atribut-atribut ini akan dikembalikan oleh IdP ketika user login.

exampleauth:Static
Modul autentifikasi exampleauth:Static merupakan bagian dari modul exampleauth. Berikut adalah
contoh sumber autentifikasi yang menggunakan exampleauth:Static :


       'example-static' => array(
            'exampleauth:Static',
            'uid' => array('testuser'),
            'eduPersonAffiliation' => array('member', 'employee'),
            'cn' => array('Test User'),
       ),

Dengan module ini, kita otomatis login dengan atribut-atribute yang telah ditentukan.


Modul LDAP

Modul LDAP menyediakan metode untuk melakukan autentifikasi terhadap server LDAP. Pada modul
ini rerdapat dua buah modul autentifikasi dan dua buah process filters (filter pemroses).

   •   ldap:LDAP
       Melakukan autentifikasi ke sebuah server LDAP
   •   ldap:LDAPMulti
       Pengguna boleh memilih satu dari beberapa sumber LDAP sebagai sumber autentifikasi
   •   ldap:AttributeAddFromLDAP
       Menambahkan sebuah nilai atribut dari LDAP ke request
   •   ldap:AttributeAddUsersGroups
       Menambahkan sebuah atribute ke semua user yang menjadi anggota group tertentu.

ldap:LDAP
Modul ini digunakan jika Anda memiliki sebuah organisasi dengan sebuah server LDAP tunggal yang
menyimpan seluruh data user. Untuk membuat sumber autentifikasi LDAP, buka
config/authsources.php, kemudian tambahkan entri berikut :


                                                   6
'example-ldap' => array(
         'ldap:LDAP',

          // Give the user an option to save their username for
future login attempts
          // And when enabled, what should the default be, to save
the username or not
          //'remember.username.enabled' => FALSE,
          //'remember.username.checked' => FALSE,

           // The hostname of the LDAP server.
           'hostname' => 'ldap.example.org',

           // Whether SSL/TLS should be used when contacting the LDAP
server.
           'enable_tls' => FALSE,

           // Whether debug output from the LDAP library should be
enabled.
           // Default is FALSE.
           'debug' => FALSE,

           // The timeout for accessing the LDAP server, in seconds.
           // The default is 0, which means no timeout.
           'timeout' => 0,

           // Which attributes should be retrieved from the LDAP
server.
          // This can be an array of attribute names, or NULL, in
which case
          // all attributes are fetched.
          'attributes' => NULL,

          // The pattern which should be used to create the users DN
given the username.
          // %username% in this pattern will be replaced with the
users username.
          //
          // This option is not used if the search.enable option is
set to TRUE.
          'dnpattern' => 'uid=%username
%,ou=people,dc=example,dc=org',


                                    7
// As an alternative to specifying a pattern for the users
DN, it is possible to
          // search for the username in a set of attributes. This is
enabled by this option.
          'search.enable' => FALSE,

          // The DN which will be used as a base for the search.
          // This can be a single string, in which case only that DN
is searched, or an
          // array of strings, in which case they will be searched in
the order given.
          'search.base' => 'ou=people,dc=example,dc=org',

          // The attribute(s) the username should match against.
          //
          // This is an array with one or more attribute names. Any
of the attributes in
          // the array may match the value the username.
          'search.attributes' => array('uid', 'mail'),

          // The username & password the simpleSAMLphp should bind to
before searching. If
          // this is left as NULL, no bind will be performed before
searching.
          'search.username' => NULL,
          'search.password' => NULL,

           // If the directory uses privilege separation,
           // the authenticated user may not be able to retrieve
           // all required attribures, a privileged entity is required
           // to get them. This is enabled with this option.
           'priv.read' => FALSE,

           // The DN & password the simpleSAMLphp should bind to
before
           // retrieving attributes. These options are required if
           // 'priv.read' is set to TRUE.
           'priv.username' => NULL,
           'priv.password' => NULL,
      ),
...




                                   8
ldap:LDAPMulti
...

ldap:AttributeAddFromLDAP
...

ldap:AttributeAddUsersGroups
..

sqlauth

sqlauth:SQL
Sumber autentifikasi sqlauth:SQL adalah bagian dari module sqlauth. Modul ini sudah diaktifkan
secara default. Jadi yang harus Anda lakukan tinggal mendefinisikan sumber autentifikasi di
config/authsources.php.
Skema database yang digunakan adalah skema database yang digunakan pada FOSUserBundle di
symfony2 :


CREATE TABLE negeripelangi_user (id INT AUTO_INCREMENT NOT NULL,
username VARCHAR(255) NOT NULL, username_canonical VARCHAR(255) NOT
NULL, email VARCHAR(255) NOT NULL, email_canonical VARCHAR(255) NOT
NULL, enabled TINYINT(1) NOT NULL, salt VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL, last_login DATETIME DEFAULT NULL,
locked TINYINT(1) NOT NULL, expired TINYINT(1) NOT NULL, expires_at
DATETIME DEFAULT NULL, confirmation_token VARCHAR(255) DEFAULT NULL,
password_requested_at DATETIME DEFAULT NULL, roles LONGTEXT NOT NULL
COMMENT '(DC2Type:array)', credentials_expired TINYINT(1) NOT NULL,
credentials_expire_at DATETIME DEFAULT NULL, UNIQUE INDEX
UNIQ_1EC5827A92FC23A8 (username_canonical), UNIQUE INDEX
UNIQ_1EC5827AA0D96FBF (email_canonical), PRIMARY KEY(id)) DEFAULT
CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;

Buka file config/authsources.php dan tambahkan konfigurasi berikut :




                                                 9
'fosuserbundle-sql' => array(
            'sqlauth:SQL',
            'dsn' => 'mysql:host=localhost;port=3306;dbname=npprofile',
            'username' => 'npprofile',
            'password' => 'rahasia!!',
            'query' => 'SELECT username, email FROM negeripelangi_user WHERE
username = :username AND password = :password',
      ),


Sesuaikan entri username dan password sesuai dengan yang Anda telah buat.
Khusus untuk sumber autentifikasi sqlauth:SQL dengan FOSUserBundle dokumentasinya dapat dibaca
di alamat :


http://workshop.openthinklabs.com/resources/-federated-
identity/membangun-platform-single-sign-on-sso-berbasis-security-
assertion-markup-language-saml/artikel/sumber-autentifikasi/sqlauth-
sql

saml:SP
...

authfacebook:Facebook
...

authtwitter:Twitter
...



Mengkonfigurasi Metadata untuk SAML 2.0 IdP
Jika Anda ingin menyiapkan SAML 2.0 Idp untuk sebuah aplikasi yang ingin Anda integrasikan, maka
Anda harus mengkofigurasi dua buah file metadata, yaitu : saml20-idp-hosted.php and
saml20-sp-remote.php.

Mengkonfigurasi SAML 2.0 IdP Hosted Metadata
Berikut ini adalah konfigurasinya :
<?php


                                                10
/**
* SAML 2.0 IdP configuration for simpleSAMLphp.
*
* See: https://rnd.feide.no/content/idp-hosted-metadata-reference
*/


$metadata['__DYNAMIC:1__'] = array(
      /*
       * The hostname of the server (VHOST) that will use this SAML entity.
       *
       * Can be '__DEFAULT__', to use this entry by default.
       */
      'host' => '__DEFAULT__',


      /* X.509 key and certificate. Relative to the cert directory. */
      'privatekey' => 'server.pem',
      'certificate' => 'server.crt',


      /*
       * Authentication source to use. Must be one that is configured in
       * 'config/authsources.php'.
       */
      'auth' => 'fosuserbundle-sql',
);



Mengkonfigurasi SAML 2.0 SP Remote Metadata
Pada file (saml20-sp-remote.php), Anda akan menambahkan tambahan entri konfigurasi untuk E-
Office. Berikut adalah contoh entri konfigurasinya :




                                                   11
Kalkun / Open Source Web Based SMS Management
....


phpBB3
...


CI-CMS2
....


MediaWiki
....


SugarCRM

....


Wordpress
....


Moodle
....

Google Apps
...




                               12
Melakukan Ujicoba untuk Login
Untuk melakukan ujicoba apakah sumber autentifikasi yang baru saja dibuat, bukalah alamat
http://idp.negeripelangi.wm, maka Anda akan mendapatkan halaman seperti berikut :

...

Masukkan password untuk manajemen IdP. Maka Anda akan mendapatkan halaman seperti berikut :

...

Buka tab Autentification, pilih default-sp, dan masukkan username dan password yang terdapat di
sumber autentifikasi yang Anda gunakan, jika berhasil maka akan terlihat tampilan seperti berikut :



Jika sudah berhasil, maka IdP Anda telah siap untuk digunakan.

Pertimbangan Keamanan
Untuk lebih meningkatkan keamanan, pastikan IdP Anda menggunakan HTTPS (SSL), dan pastikan
Anda telah mengganti certificate default yang disertakan dalam simpleSAMLphp dengan certificate
yang baru.

Dukungan
Jika Anda memerlukan bantuan dalam menyiapkan simpleSAMLphp sebagai IdP Anda dapat bertanya
di komunitas simpleSAMLphp, http://rnd.feide.no/content/simplesamlphp-users-mailinglist




                                                  13

Weitere ähnliche Inhalte

Ähnlich wie Instalasi simpleSAMLphp sebagai Identity Provider (IdP)

Panduan lengkap php ajax j query
Panduan lengkap php ajax j queryPanduan lengkap php ajax j query
Panduan lengkap php ajax j query
apriatin
 
09071003002 session dan fungsinya
09071003002 session dan fungsinya09071003002 session dan fungsinya
09071003002 session dan fungsinya
febeniken
 
Contoh Session By Tugas Session Hanni
Contoh Session By Tugas Session HanniContoh Session By Tugas Session Hanni
Contoh Session By Tugas Session Hanni
Ullum Pratiwi
 
Manual aplikasi dapodikdas_v300_01082014
Manual aplikasi dapodikdas_v300_01082014Manual aplikasi dapodikdas_v300_01082014
Manual aplikasi dapodikdas_v300_01082014
abijand
 
Implementasi otentikasi pada squid dalam mode transparent proxy
Implementasi otentikasi pada squid dalam mode transparent proxyImplementasi otentikasi pada squid dalam mode transparent proxy
Implementasi otentikasi pada squid dalam mode transparent proxy
Panggih Supraja
 
Membuat Multiaplikasi menggunakan VB6
Membuat Multiaplikasi menggunakan VB6Membuat Multiaplikasi menggunakan VB6
Membuat Multiaplikasi menggunakan VB6
Nurdin Al-Azies
 
Id setup-bash-malhadijr-5-may-2018
Id setup-bash-malhadijr-5-may-2018Id setup-bash-malhadijr-5-may-2018
Id setup-bash-malhadijr-5-may-2018
Misteraladin Tbk.
 

Ähnlich wie Instalasi simpleSAMLphp sebagai Identity Provider (IdP) (20)

Tugas makalah 4 ka34 pemograman generasi ke 4
Tugas makalah 4 ka34 pemograman generasi ke 4Tugas makalah 4 ka34 pemograman generasi ke 4
Tugas makalah 4 ka34 pemograman generasi ke 4
 
SDD
SDDSDD
SDD
 
Panduan lengkap php ajax j query
Panduan lengkap php ajax j queryPanduan lengkap php ajax j query
Panduan lengkap php ajax j query
 
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.jsPengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
 
tugas 2
tugas 2tugas 2
tugas 2
 
09071003002 session dan fungsinya
09071003002 session dan fungsinya09071003002 session dan fungsinya
09071003002 session dan fungsinya
 
Contoh Session By Tugas Session Hanni
Contoh Session By Tugas Session HanniContoh Session By Tugas Session Hanni
Contoh Session By Tugas Session Hanni
 
Modul Web Programming - Framework CodeIgniter
Modul Web Programming - Framework CodeIgniterModul Web Programming - Framework CodeIgniter
Modul Web Programming - Framework CodeIgniter
 
Manual aplikasi dapodikdas_v300_01082014
Manual aplikasi dapodikdas_v300_01082014Manual aplikasi dapodikdas_v300_01082014
Manual aplikasi dapodikdas_v300_01082014
 
Implementasi otentikasi pada squid dalam mode transparent proxy
Implementasi otentikasi pada squid dalam mode transparent proxyImplementasi otentikasi pada squid dalam mode transparent proxy
Implementasi otentikasi pada squid dalam mode transparent proxy
 
Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1
 
Tutorial Instalasi TKJ CLoud Server
Tutorial Instalasi TKJ CLoud ServerTutorial Instalasi TKJ CLoud Server
Tutorial Instalasi TKJ CLoud Server
 
E commerce dengan php mysql.docx
E commerce dengan php mysql.docxE commerce dengan php mysql.docx
E commerce dengan php mysql.docx
 
Membuat Multiaplikasi menggunakan VB6
Membuat Multiaplikasi menggunakan VB6Membuat Multiaplikasi menggunakan VB6
Membuat Multiaplikasi menggunakan VB6
 
Ka 01.-praktikum-algoritma-pemrograman-2
Ka 01.-praktikum-algoritma-pemrograman-2Ka 01.-praktikum-algoritma-pemrograman-2
Ka 01.-praktikum-algoritma-pemrograman-2
 
Mi 02.-praktikum-pemrograman-visual-1
Mi 02.-praktikum-pemrograman-visual-1Mi 02.-praktikum-pemrograman-visual-1
Mi 02.-praktikum-pemrograman-visual-1
 
03. prak.-pemrograman-visual-i-vb.net
03. prak.-pemrograman-visual-i-vb.net 03. prak.-pemrograman-visual-i-vb.net
03. prak.-pemrograman-visual-i-vb.net
 
web_server-side-scripting2.pdf
web_server-side-scripting2.pdfweb_server-side-scripting2.pdf
web_server-side-scripting2.pdf
 
Ukk 2016 redhat 9.0 (instalasi, settting ip, dhcp dan dns) - bayu agus
Ukk 2016   redhat 9.0 (instalasi, settting ip, dhcp dan dns) - bayu agusUkk 2016   redhat 9.0 (instalasi, settting ip, dhcp dan dns) - bayu agus
Ukk 2016 redhat 9.0 (instalasi, settting ip, dhcp dan dns) - bayu agus
 
Id setup-bash-malhadijr-5-may-2018
Id setup-bash-malhadijr-5-may-2018Id setup-bash-malhadijr-5-may-2018
Id setup-bash-malhadijr-5-may-2018
 

Mehr von Wildan Maulana

Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Wildan Maulana
 
Pengembangan OpenThink SAS 2013-2014
Pengembangan OpenThink SAS 2013-2014Pengembangan OpenThink SAS 2013-2014
Pengembangan OpenThink SAS 2013-2014
Wildan Maulana
 
ICA – AtoM : Retensi Arsip
ICA – AtoM : Retensi ArsipICA – AtoM : Retensi Arsip
ICA – AtoM : Retensi Arsip
Wildan Maulana
 
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RWOpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
Wildan Maulana
 
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
Wildan Maulana
 
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyToolsPostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
Wildan Maulana
 
River Restoration in Asia and Connection Between IWRM and River Restoration
River Restoration in Asia and Connection Between IWRM and River RestorationRiver Restoration in Asia and Connection Between IWRM and River Restoration
River Restoration in Asia and Connection Between IWRM and River Restoration
Wildan Maulana
 
Penilaian Siswa di Finlandia - Pendidikan Dasar
Penilaian Siswa di Finlandia - Pendidikan DasarPenilaian Siswa di Finlandia - Pendidikan Dasar
Penilaian Siswa di Finlandia - Pendidikan Dasar
Wildan Maulana
 
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and UsesProyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Wildan Maulana
 
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang TuaOpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
Wildan Maulana
 
Menggunakan AlisJK (Analisis Lembar Jawaban Kompuer/Analisis Item Soal)
Menggunakan AlisJK (Analisis Lembar Jawaban Kompuer/Analisis Item Soal)Menggunakan AlisJK (Analisis Lembar Jawaban Kompuer/Analisis Item Soal)
Menggunakan AlisJK (Analisis Lembar Jawaban Kompuer/Analisis Item Soal)
Wildan Maulana
 
Perkembangan OpenThink SAS a.k.a SIMMSIT, 2011-2012
Perkembangan OpenThink SAS a.k.a SIMMSIT, 2011-2012Perkembangan OpenThink SAS a.k.a SIMMSIT, 2011-2012
Perkembangan OpenThink SAS a.k.a SIMMSIT, 2011-2012
Wildan Maulana
 
Master Plan Portal Universitas Negeri Pelangi
Master Plan Portal Universitas Negeri PelangiMaster Plan Portal Universitas Negeri Pelangi
Master Plan Portal Universitas Negeri Pelangi
Wildan Maulana
 
Koperasi NP : Program Penanggulangan Kemiskinan Kabinet Indonesia Bersatu II ...
Koperasi NP : Program Penanggulangan Kemiskinan Kabinet Indonesia Bersatu II ...Koperasi NP : Program Penanggulangan Kemiskinan Kabinet Indonesia Bersatu II ...
Koperasi NP : Program Penanggulangan Kemiskinan Kabinet Indonesia Bersatu II ...
Wildan Maulana
 
Koperasi NP : Indonesia Mandiri, Maju, Adil dan Makmur
Koperasi NP : Indonesia Mandiri, Maju, Adil dan MakmurKoperasi NP : Indonesia Mandiri, Maju, Adil dan Makmur
Koperasi NP : Indonesia Mandiri, Maju, Adil dan Makmur
Wildan Maulana
 

Mehr von Wildan Maulana (20)

Hasil Pendataan Potensi Desa 2018
Hasil Pendataan Potensi Desa 2018Hasil Pendataan Potensi Desa 2018
Hasil Pendataan Potensi Desa 2018
 
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
 
Ketahanan Pangan #1 : Gerakan Sekolah Menanam Melon
Ketahanan Pangan #1 : Gerakan Sekolah Menanam MelonKetahanan Pangan #1 : Gerakan Sekolah Menanam Melon
Ketahanan Pangan #1 : Gerakan Sekolah Menanam Melon
 
Pengembangan OpenThink SAS 2013-2014
Pengembangan OpenThink SAS 2013-2014Pengembangan OpenThink SAS 2013-2014
Pengembangan OpenThink SAS 2013-2014
 
ICA – AtoM : Retensi Arsip
ICA – AtoM : Retensi ArsipICA – AtoM : Retensi Arsip
ICA – AtoM : Retensi Arsip
 
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RWOpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
 
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
 
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyToolsPostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
 
River Restoration in Asia and Connection Between IWRM and River Restoration
River Restoration in Asia and Connection Between IWRM and River RestorationRiver Restoration in Asia and Connection Between IWRM and River Restoration
River Restoration in Asia and Connection Between IWRM and River Restoration
 
Optimasi Limpasan Air Limbah Ke Kali Surabaya (Segmen Sepanjang – Jagir) De...
Optimasi Limpasan Air Limbah  Ke Kali Surabaya (Segmen Sepanjang – Jagir)  De...Optimasi Limpasan Air Limbah  Ke Kali Surabaya (Segmen Sepanjang – Jagir)  De...
Optimasi Limpasan Air Limbah Ke Kali Surabaya (Segmen Sepanjang – Jagir) De...
 
Penilaian Siswa di Finlandia - Pendidikan Dasar
Penilaian Siswa di Finlandia - Pendidikan DasarPenilaian Siswa di Finlandia - Pendidikan Dasar
Penilaian Siswa di Finlandia - Pendidikan Dasar
 
Statistik Listrik
Statistik ListrikStatistik Listrik
Statistik Listrik
 
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and UsesProyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
 
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang TuaOpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
 
Menggunakan AlisJK : Equating
Menggunakan AlisJK : EquatingMenggunakan AlisJK : Equating
Menggunakan AlisJK : Equating
 
Menggunakan AlisJK (Analisis Lembar Jawaban Kompuer/Analisis Item Soal)
Menggunakan AlisJK (Analisis Lembar Jawaban Kompuer/Analisis Item Soal)Menggunakan AlisJK (Analisis Lembar Jawaban Kompuer/Analisis Item Soal)
Menggunakan AlisJK (Analisis Lembar Jawaban Kompuer/Analisis Item Soal)
 
Perkembangan OpenThink SAS a.k.a SIMMSIT, 2011-2012
Perkembangan OpenThink SAS a.k.a SIMMSIT, 2011-2012Perkembangan OpenThink SAS a.k.a SIMMSIT, 2011-2012
Perkembangan OpenThink SAS a.k.a SIMMSIT, 2011-2012
 
Master Plan Portal Universitas Negeri Pelangi
Master Plan Portal Universitas Negeri PelangiMaster Plan Portal Universitas Negeri Pelangi
Master Plan Portal Universitas Negeri Pelangi
 
Koperasi NP : Program Penanggulangan Kemiskinan Kabinet Indonesia Bersatu II ...
Koperasi NP : Program Penanggulangan Kemiskinan Kabinet Indonesia Bersatu II ...Koperasi NP : Program Penanggulangan Kemiskinan Kabinet Indonesia Bersatu II ...
Koperasi NP : Program Penanggulangan Kemiskinan Kabinet Indonesia Bersatu II ...
 
Koperasi NP : Indonesia Mandiri, Maju, Adil dan Makmur
Koperasi NP : Indonesia Mandiri, Maju, Adil dan MakmurKoperasi NP : Indonesia Mandiri, Maju, Adil dan Makmur
Koperasi NP : Indonesia Mandiri, Maju, Adil dan Makmur
 

Instalasi simpleSAMLphp sebagai Identity Provider (IdP)

  • 1. Instalasi simpleSAMLphp sebagai Identity Provider (IdP) OpenThink Labs Workshops Membangun Platform Single Sign On (SSO) berbasis Security Assertion Markup Language (SAML) Wildan Maulana <wildan.m@openthinklabs.com> Kamis 8 November 2012 Daftar Isi Berita dan Dokumentasi simpleSAMLphp................................................................................................3 Pendahuluan ..............................................................................................................................................3 Mengaktifkan Fungsionalitas Identity Provider.........................................................................................3 Menyiapkan SSL Signing Certificate.........................................................................................................3 Sumber Autentifikasi..................................................................................................................................4 Mengkonfigurasi Sumber Autentifikasi.....................................................................................................5 Modul exampleauth...............................................................................................................................5 exampleauth:UserPass......................................................................................................................5 exampleauth:Static............................................................................................................................6 Modul LDAP.........................................................................................................................................6 ldap:LDAP........................................................................................................................................6 ldap:LDAPMulti...............................................................................................................................9 ldap:AttributeAddFromLDAP .........................................................................................................9 ldap:AttributeAddUsersGroups........................................................................................................9 sqlauth...................................................................................................................................................9 sqlauth:SQL......................................................................................................................................9 saml:SP................................................................................................................................................10 authfacebook:Facebook.......................................................................................................................10 authtwitter:Twitter...............................................................................................................................10 Mengkonfigurasi Metadata untuk SAML 2.0 IdP....................................................................................10 Mengkonfigurasi SAML 2.0 IdP Hosted Metadata.............................................................................10 Mengkonfigurasi SAML 2.0 SP Remote Metadata.............................................................................11 Kalkun / Open Source Web Based SMS Management...................................................................12 phpBB3...........................................................................................................................................12 CI-CMS2........................................................................................................................................12 MediaWiki......................................................................................................................................12 SugarCRM .....................................................................................................................................12 Wordpress.......................................................................................................................................12 Moodle............................................................................................................................................12 Google Apps...................................................................................................................................12 Melakukan Ujicoba untuk Login ...........................................................................................................13 1
  • 3. Berita dan Dokumentasi simpleSAMLphp Untuk melihat dokumentasi lengkap terkait simpleSAMLphp Anda dapat mengunjungi beberapa sumber berikut : • Daftar lengkap Dokumentasi simpleSAMLphp, http://simplesamlphp.org/docs • Berita terbaru terkait simpleSAMLphp, https://rnd.feide.no/category/simplesamlphp/ • Homepage simpleSAMLphp, http://rnd.feide.no/simplesamlphp Pendahuluan Artikel ini mengasumsikan kalau Anda telah membaca manual instalasi simpleSAMLphp dan telah menginstall versi terbaru simpleSAMLphp di server Anda. Pada contoh kali ini Kita akan menyiapkan server ini sebagai IdP untuk berbagai aplikasi yang akan kita integrasikan nanti : http://idp.negeripelangi.org. Mengaktifkan Fungsionalitas Identity Provider Edit config/config.php, dan Aktifkan SAML 2.0 IdP : 'enable.saml20-idp' => true, 'enable.shib13-idp' => false, Menyiapkan SSL Signing Certificate Untuk tujuan percobaan, Anda dapat melewati bagian ini, dan menggunakan certificate default yang sudah ada. Untuk sistem yang sudah produktif, Anda harus membuat sendiri certificate untuk IdP Anda. Peringatan Paket software simpleSAMLphp memiliki certificate yang dapat Anda gunakan untuk tujuan percobaan, tetapi tentu saja, jangan sekali-kali menggunakan certificate ini pada sistem yang sudah produktif karena private key dari certificate ini juga disertakan didalam paket software simpleSAMLphp dan dapat didownload oleh siapa saja. Berikut ini adalah sebuah contoh perintah openssl untuk membuat key baru dan selfsigned certificate yang akan digunakan untuk men-signing SAML messages : 3
  • 4. openssl req -newkey rsa:2048 -new -x509 -days 3652 -nodes -out eofficeidp.crt -keyout negeripelangiidp.pem Certificate diatas akan valid untuk 10 tahun. Catatan : simpleSAMLphp hanya dapat bekerja dengan certificate RSA dan DSA. Sumber Autentifikasi Langkah selanjutnya adalah mengkonfigurasi bagaimana cara user melakukan autentifikasi ke IdP Anda. Berbagai modul di direktori modules/ menyediakan berbagai metode untuk melakukan autentifikasi user Anda. Berikut ini adalah ulasan sekilas tentang beberapa metode yang akan kita coba gunakan : exampleauth:UserPass Melakukan Autentifikasi terhadap daftar username dan password. exampleauth:Static Secara otomatis log in sebagai user dengan attribute-attribute yang telah didefinisikan. ldap:LDAP Melakukan autentifikasi terhadap server LDAP. ldap:LDAPMulti Melakukan autentifikasi terhadap sebuah server LDAP dari beberap server LDAP yang telah didaftarkan sqlauth:SQL Melakukan autentifikasi terhadap RDBMS saml:SP Melakukan autentifikasi terhadap SAML IdP. authfacebook:Facebook Melakukan autentifikasi dengan Facebook ID. authtwitter:Twitter Melakukan autentifikasi dengan akun Twitter Anda via API OAuth Twitter. Pada konfigurasi di dokumentasi ini, Kita akan menggunakan modul autentifikasi sqlauth:SQL. 4
  • 5. Mengkonfigurasi Sumber Autentifikasi Modul exampleauth exampleauth:UserPass Modul autentifikasi Exampleauth:UserPass merupakan bagian dari modul exampleauth. Module secara default tidak diaktifkan, jadi sebelum menggunakannya, Anda harus mengaktifkannya terlebih dahulu. Untuk mengaktifkannya, buat file bernama enable pada direktori modules/exampleauth. Di Linux Anda dapat melakukannya dengan menggunakan perintah berikut : touch modules/exampleauth/enable Langkah selanjutnya adalah membuat authentication source (sumber autentifikasi) untuk modul ini. Sumber autentifikasi adalah sebuah module autentifikasi dengan konfigurasi khusus. Setiap sumber autentifikasi memiliki sebuah nama, yang digunakan sebagai rujukan ketika melakukan konfigurasi pada IdP. Konfigurasi untuk sumber autentifikasi dapat ditemukan di config/authsources.php. Berikut adalah contoh konfigurasi sumber autentifikasi yang menggunakan module exampleauth:UserPass : <?php $config = array( 'example-userpass' => array( 'exampleauth:UserPass', 'student:studentpassword' => array( 'uid' => array('student'), 'eduPersonAffiliation' => array('member', 'student'), ), 'employee:employeepassword' => array( 'uid' => array('employee'), 'eduPersonAffiliation' => array('member', 'employee'), ), ), ); Konfigurasi ini membuat dua buah user, yaitu student dan employee dengan password masing-masing, studentpassword dan employeepassword. Username dan password disimpan sebagai index dari sebuah array sedangkan attribute setiap user dikonfigurasi dalam bentuk array dimana index array tersebut menjadi referensinya. Untuk user student, atribut-atribut ini adalah : 5
  • 6. array( 'uid' => array('student'), 'eduPersonAffiliation' => array('member', 'student'), ), Atribut-atribut ini akan dikembalikan oleh IdP ketika user login. exampleauth:Static Modul autentifikasi exampleauth:Static merupakan bagian dari modul exampleauth. Berikut adalah contoh sumber autentifikasi yang menggunakan exampleauth:Static : 'example-static' => array( 'exampleauth:Static', 'uid' => array('testuser'), 'eduPersonAffiliation' => array('member', 'employee'), 'cn' => array('Test User'), ), Dengan module ini, kita otomatis login dengan atribut-atribute yang telah ditentukan. Modul LDAP Modul LDAP menyediakan metode untuk melakukan autentifikasi terhadap server LDAP. Pada modul ini rerdapat dua buah modul autentifikasi dan dua buah process filters (filter pemroses). • ldap:LDAP Melakukan autentifikasi ke sebuah server LDAP • ldap:LDAPMulti Pengguna boleh memilih satu dari beberapa sumber LDAP sebagai sumber autentifikasi • ldap:AttributeAddFromLDAP Menambahkan sebuah nilai atribut dari LDAP ke request • ldap:AttributeAddUsersGroups Menambahkan sebuah atribute ke semua user yang menjadi anggota group tertentu. ldap:LDAP Modul ini digunakan jika Anda memiliki sebuah organisasi dengan sebuah server LDAP tunggal yang menyimpan seluruh data user. Untuk membuat sumber autentifikasi LDAP, buka config/authsources.php, kemudian tambahkan entri berikut : 6
  • 7. 'example-ldap' => array( 'ldap:LDAP', // Give the user an option to save their username for future login attempts // And when enabled, what should the default be, to save the username or not //'remember.username.enabled' => FALSE, //'remember.username.checked' => FALSE, // The hostname of the LDAP server. 'hostname' => 'ldap.example.org', // Whether SSL/TLS should be used when contacting the LDAP server. 'enable_tls' => FALSE, // Whether debug output from the LDAP library should be enabled. // Default is FALSE. 'debug' => FALSE, // The timeout for accessing the LDAP server, in seconds. // The default is 0, which means no timeout. 'timeout' => 0, // Which attributes should be retrieved from the LDAP server. // This can be an array of attribute names, or NULL, in which case // all attributes are fetched. 'attributes' => NULL, // The pattern which should be used to create the users DN given the username. // %username% in this pattern will be replaced with the users username. // // This option is not used if the search.enable option is set to TRUE. 'dnpattern' => 'uid=%username %,ou=people,dc=example,dc=org', 7
  • 8. // As an alternative to specifying a pattern for the users DN, it is possible to // search for the username in a set of attributes. This is enabled by this option. 'search.enable' => FALSE, // The DN which will be used as a base for the search. // This can be a single string, in which case only that DN is searched, or an // array of strings, in which case they will be searched in the order given. 'search.base' => 'ou=people,dc=example,dc=org', // The attribute(s) the username should match against. // // This is an array with one or more attribute names. Any of the attributes in // the array may match the value the username. 'search.attributes' => array('uid', 'mail'), // The username & password the simpleSAMLphp should bind to before searching. If // this is left as NULL, no bind will be performed before searching. 'search.username' => NULL, 'search.password' => NULL, // If the directory uses privilege separation, // the authenticated user may not be able to retrieve // all required attribures, a privileged entity is required // to get them. This is enabled with this option. 'priv.read' => FALSE, // The DN & password the simpleSAMLphp should bind to before // retrieving attributes. These options are required if // 'priv.read' is set to TRUE. 'priv.username' => NULL, 'priv.password' => NULL, ), ... 8
  • 9. ldap:LDAPMulti ... ldap:AttributeAddFromLDAP ... ldap:AttributeAddUsersGroups .. sqlauth sqlauth:SQL Sumber autentifikasi sqlauth:SQL adalah bagian dari module sqlauth. Modul ini sudah diaktifkan secara default. Jadi yang harus Anda lakukan tinggal mendefinisikan sumber autentifikasi di config/authsources.php. Skema database yang digunakan adalah skema database yang digunakan pada FOSUserBundle di symfony2 : CREATE TABLE negeripelangi_user (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(255) NOT NULL, username_canonical VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, email_canonical VARCHAR(255) NOT NULL, enabled TINYINT(1) NOT NULL, salt VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, last_login DATETIME DEFAULT NULL, locked TINYINT(1) NOT NULL, expired TINYINT(1) NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(255) DEFAULT NULL, password_requested_at DATETIME DEFAULT NULL, roles LONGTEXT NOT NULL COMMENT '(DC2Type:array)', credentials_expired TINYINT(1) NOT NULL, credentials_expire_at DATETIME DEFAULT NULL, UNIQUE INDEX UNIQ_1EC5827A92FC23A8 (username_canonical), UNIQUE INDEX UNIQ_1EC5827AA0D96FBF (email_canonical), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB; Buka file config/authsources.php dan tambahkan konfigurasi berikut : 9
  • 10. 'fosuserbundle-sql' => array( 'sqlauth:SQL', 'dsn' => 'mysql:host=localhost;port=3306;dbname=npprofile', 'username' => 'npprofile', 'password' => 'rahasia!!', 'query' => 'SELECT username, email FROM negeripelangi_user WHERE username = :username AND password = :password', ), Sesuaikan entri username dan password sesuai dengan yang Anda telah buat. Khusus untuk sumber autentifikasi sqlauth:SQL dengan FOSUserBundle dokumentasinya dapat dibaca di alamat : http://workshop.openthinklabs.com/resources/-federated- identity/membangun-platform-single-sign-on-sso-berbasis-security- assertion-markup-language-saml/artikel/sumber-autentifikasi/sqlauth- sql saml:SP ... authfacebook:Facebook ... authtwitter:Twitter ... Mengkonfigurasi Metadata untuk SAML 2.0 IdP Jika Anda ingin menyiapkan SAML 2.0 Idp untuk sebuah aplikasi yang ingin Anda integrasikan, maka Anda harus mengkofigurasi dua buah file metadata, yaitu : saml20-idp-hosted.php and saml20-sp-remote.php. Mengkonfigurasi SAML 2.0 IdP Hosted Metadata Berikut ini adalah konfigurasinya : <?php 10
  • 11. /** * SAML 2.0 IdP configuration for simpleSAMLphp. * * See: https://rnd.feide.no/content/idp-hosted-metadata-reference */ $metadata['__DYNAMIC:1__'] = array( /* * The hostname of the server (VHOST) that will use this SAML entity. * * Can be '__DEFAULT__', to use this entry by default. */ 'host' => '__DEFAULT__', /* X.509 key and certificate. Relative to the cert directory. */ 'privatekey' => 'server.pem', 'certificate' => 'server.crt', /* * Authentication source to use. Must be one that is configured in * 'config/authsources.php'. */ 'auth' => 'fosuserbundle-sql', ); Mengkonfigurasi SAML 2.0 SP Remote Metadata Pada file (saml20-sp-remote.php), Anda akan menambahkan tambahan entri konfigurasi untuk E- Office. Berikut adalah contoh entri konfigurasinya : 11
  • 12. Kalkun / Open Source Web Based SMS Management .... phpBB3 ... CI-CMS2 .... MediaWiki .... SugarCRM .... Wordpress .... Moodle .... Google Apps ... 12
  • 13. Melakukan Ujicoba untuk Login Untuk melakukan ujicoba apakah sumber autentifikasi yang baru saja dibuat, bukalah alamat http://idp.negeripelangi.wm, maka Anda akan mendapatkan halaman seperti berikut : ... Masukkan password untuk manajemen IdP. Maka Anda akan mendapatkan halaman seperti berikut : ... Buka tab Autentification, pilih default-sp, dan masukkan username dan password yang terdapat di sumber autentifikasi yang Anda gunakan, jika berhasil maka akan terlihat tampilan seperti berikut : Jika sudah berhasil, maka IdP Anda telah siap untuk digunakan. Pertimbangan Keamanan Untuk lebih meningkatkan keamanan, pastikan IdP Anda menggunakan HTTPS (SSL), dan pastikan Anda telah mengganti certificate default yang disertakan dalam simpleSAMLphp dengan certificate yang baru. Dukungan Jika Anda memerlukan bantuan dalam menyiapkan simpleSAMLphp sebagai IdP Anda dapat bertanya di komunitas simpleSAMLphp, http://rnd.feide.no/content/simplesamlphp-users-mailinglist 13