SAML (Security Assertion Markup Language) memungkinkan akses aman dan tanpa hambatan ke beberapa aplikasi dengan bertukar data autentikasi antara Penyedia Identitas (Identity Provider/IdP) dan Penyedia Layanan (Service Provider/SP).
Ini memungkinkan pengguna untuk masuk sekali dan mengakses berbagai layanan tanpa memasukkan kembali kredensial, meningkatkan keamanan dan pengalaman pengguna di lingkungan perusahaan. Dalam postingan ini, kita akan menjelajahi cara kerja SAML dan manfaatnya.
Apa Itu Security Assertion Markup Language (SAML)?
Autentikasi SAML (Security Assertion Markup Language) memungkinkan akses aman ke layanan dengan bertukar data autentikasi dan otorisasi antara Penyedia Identitas (Identity Provider/IdP) dan Penyedia Layanan (Service Provider/SP). Protokol ini umumnya digunakan di lingkungan perusahaan untuk memberi pengguna akses tanpa hambatan ke beberapa aplikasi menggunakan satu set kredensial.
Komponen SAML
Berikut adalah komponen dan konsep utama SAML:
- Penyedia Identitas (IdP): Ini adalah entitas yang mengautentikasi pengguna dan memberikan pernyataan (assertion) kepada penyedia layanan. Pernyataan tersebut berisi informasi tentang identitas dan atribut pengguna.
- Penyedia Layanan (SP): Ini adalah entitas yang menerima pernyataan SAML dan membuat keputusan kontrol akses berdasarkan pernyataan tersebut. Penyedia layanan mempercayai penyedia identitas untuk mengautentikasi pengguna.
- Pernyataan SAML: Ini adalah dokumen XML yang dikirimkan penyedia identitas ke penyedia layanan. Dokumen ini berisi informasi autentikasi, informasi atribut, dan keputusan otorisasi.
- Single Sign-On (SSO): SAML umumnya digunakan untuk mengimplementasikan SSO, memungkinkan pengguna untuk mengautentikasi sekali dengan penyedia identitas dan mendapatkan akses ke beberapa penyedia layanan tanpa melakukan autentikasi ulang.
- Bindings: SAML mendukung beberapa bindings untuk transportasi pesan, termasuk HTTP Redirect, HTTP POST, dan SOAP.
- Protokol Berbasis XML: SAML menggunakan XML untuk menyandikan pesan yang dipertukarkan antara penyedia identitas dan penyedia layanan.
SAML 2.0
Membangun konsep SAML, mari kita selidiki SAML 2.0, yang merupakan versi standar yang paling banyak digunakan. SAML 2.0 memperkenalkan beberapa peningkatan dan fitur dibandingkan pendahulunya, SAML 1.1:
- Single Sign-On (SSO) yang Ditingkatkan: SAML 2.0 meningkatkan kemampuan SSO, membuatnya lebih mudah untuk diimplementasikan dan lebih kuat dalam hal keamanan dan pengalaman pengguna.
- Federasi Identitas: Ini memungkinkan federasi identitas yang lebih mulus antara domain yang berbeda, memungkinkan pengguna untuk mengakses sumber daya di berbagai organisasi dengan satu proses autentikasi.
- Dukungan untuk Beberapa Konteks Autentikasi: SAML 2.0 dapat menangani berbagai tingkat jaminan autentikasi, memungkinkan penggunaan metode autentikasi yang lebih kuat jika diperlukan.
- Pertukaran Metadata: Versi ini mendukung pertukaran metadata antara penyedia identitas dan penyedia layanan, yang membantu mengotomatiskan konfigurasi dan pembentukan hubungan kepercayaan.
- Bindings Protokol yang Ditingkatkan: SAML 2.0 menyertakan dukungan yang lebih baik untuk berbagai protokol transportasi, seperti HTTP Redirect, HTTP POST, dan Artifact Binding, meningkatkan fleksibilitas dan kompatibilitas.
- Kueri Atribut dan Persetujuan: SAML 2.0 memungkinkan untuk menanyakan atribut pengguna dan mengelola persetujuan pengguna dengan lebih efisien, meningkatkan kontrol pengguna atas data pribadi.
Bagaimana Cara Kerja Autentikasi SAML?
Proses Autentikasi
Autentikasi SAML dimulai ketika pengguna memulai proses login dengan memasukkan kredensial mereka di IdP. IdP memverifikasi identitas pengguna dan membuat pernyataan SAML, yang berisi atribut pengguna dan informasi autentikasi.
Pernyataan ini mencakup detail seperti identitas pengguna, waktu autentikasi, dan kondisi di mana pernyataan tersebut valid. Untuk memastikan integritas dan keaslian informasi, pernyataan tersebut ditandatangani secara digital oleh IdP.
Akses Layanan
Setelah diautentikasi, pengguna mencoba mengakses layanan yang disediakan oleh SP. SP, yang perlu memverifikasi identitas pengguna, mengarahkan pengguna ke IdP dengan permintaan autentikasi. IdP merespons dengan mengirimkan pernyataan SAML ke SP, biasanya melalui browser pengguna menggunakan HTTP POST atau HTTP Redirect.
SP kemudian memvalidasi pernyataan SAML dengan memeriksa tanda tangan digital dan kondisi pernyataan. Jika pernyataan valid, SP memberikan akses pengguna ke layanan yang diminta. Proses ini mulus bagi pengguna, yang hanya perlu masuk sekali untuk mendapatkan akses ke beberapa layanan.
Contoh Skenario
Pertimbangkan skenario perusahaan yang umum. Pada awal hari kerja, John masuk ke sistem Identity and Access Management (IAM) perusahaannya, yang berfungsi sebagai IdP, menggunakan kredensial perusahaannya.
IdP memverifikasi kredensial John dan membuat pernyataan SAML, yang mencakup informasi seperti nama pengguna John, stempel waktu autentikasi, dan atribut akses berbasis peran. John kemudian mencoba mengakses layanan email yang dihosting perusahaan, sebuah SP.
Layanan email mengarahkan John ke IdP dengan permintaan autentikasi. IdP mengirimkan pernyataan SAML kembali ke layanan email melalui browser John. Layanan email memvalidasi pernyataan dengan memeriksa tanda tangan digital dan memastikan bahwa semua kondisi terpenuhi, seperti pernyataan yang ditujukan untuk layanan email dan tidak kedaluwarsa.
Setelah divalidasi, John diberikan akses ke layanan email tanpa perlu memasukkan kembali kredensialnya, memungkinkannya untuk menggunakan layanan tersebut dengan lancar.
Manfaat Autentikasi SAML
Dengan mengintegrasikan autentikasi SAML, organisasi dapat menyederhanakan manajemen akses pengguna, meningkatkan keamanan dengan mengurangi risiko kelelahan dan penggunaan ulang kata sandi, dan memberi pengguna akses tanpa hambatan ke beberapa aplikasi. Integrasi ini pada akhirnya meningkatkan efisiensi operasional dan postur keamanan.
Apa Itu Pernyataan SAML?
Pernyataan SAML adalah dokumen XML yang dikeluarkan oleh Penyedia Identitas SAML (IdP) dan digunakan oleh Penyedia Layanan (SP). Ini berisi pernyataan tentang pengguna yang dapat dipercaya oleh kedua belah pihak.
Tujuan utama dari Pernyataan SAML adalah untuk menyampaikan informasi keamanan antara IdP dan SP dengan cara yang aman dan terstandarisasi. Berikut adalah komponen dan jenis pernyataan utama yang ditemukan dalam Pernyataan SAML:
Komponen Utama
- Penerbit: Entitas yang mengeluarkan pernyataan, biasanya IdP.
- Subjek: Pengguna atau entitas yang menjadi subjek pernyataan. Ini biasanya mencakup pengidentifikasi unik untuk pengguna.
- Kondisi: Batasan dan aturan di mana pernyataan itu valid, termasuk batasan waktu dan batasan audiens.
- Pernyataan Autentikasi: Informasi tentang autentikasi pengguna di IdP, seperti metode autentikasi dan stempel waktu.
- Pernyataan Atribut: Kumpulan atribut tentang pengguna, seperti nama, alamat email, peran, dll.
- Pernyataan Keputusan Otorisasi: Informasi tentang hak akses pengguna ke sumber daya tertentu.
Jenis Pernyataan
- Pernyataan Autentikasi: Menjelaskan tindakan autentikasi di IdP, termasuk metode yang digunakan dan waktu autentikasi.
- Pernyataan Atribut: Berisi atribut yang terkait dengan subjek. Misalnya, alamat email pengguna, peran, atau informasi relevan lainnya.
- Pernyataan Keputusan Otorisasi: Memberikan informasi tentang apakah pengguna berwenang untuk mengakses sumber daya tertentu. Ini termasuk keputusan (izinkan atau tolak) dan sumber daya yang dimaksud.
Bagaimana Cara Kerja Pernyataan SAML
- Pengguna Meminta Akses: Pengguna mencoba mengakses sumber daya di SP.
- SP Meminta Autentikasi: SP mengarahkan pengguna ke IdP untuk autentikasi.
- Pengguna Mengautentikasi: Pengguna memberikan kredensial ke IdP.
- IdP Menerbitkan Pernyataan: Setelah autentikasi berhasil, IdP menghasilkan Pernyataan SAML dan mengirimkannya kembali ke SP, biasanya melalui browser pengguna.
- SP Memvalidasi Pernyataan: SP memvalidasi pernyataan, memeriksa integritasnya, validitas penerbit, dan kondisinya.
- Akses Diberikan: Jika pernyataan valid, pengguna diberikan akses ke sumber daya.
Pertimbangan Keamanan
- Enkripsi: Pernyataan SAML dapat dienkripsi untuk memastikan kerahasiaan.
- Penandatanganan: Pernyataan sering ditandatangani untuk menjamin integritas dan keasliannya.
- Kedaluwarsa: Pernyataan menyertakan kondisi, seperti batasan waktu, untuk mengurangi risiko serangan replay.