SAML dan Federasi
Login tunggal untuk perusahaan.
SAML dan Federasi adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Apa Itu SAML
SAML (Bahasa Markup Pernyataan Keamanan) adalah standar berbasis XML untuk bertukar data autentikasi dan otorisasi, yang dominan dalam SSO perusahaan.
- SAML memungkinkan penyedia identitas korporat menjamin identitas pengguna kepada banyak aplikasi.
- SAML 2.0 lebih dahulu ada daripada OIDC dan tetap mengakar kuat dalam identitas B2B serta tenaga kerja.
Memahami SAML sangat penting untuk melindungi federasi perusahaan, karena satu kelemahan kepercayaan dapat mengekspos setiap aplikasi yang terhubung.
Peran IdP dan SP
Federasi SAML memiliki dua pihak utama.
- Penyedia Identitas (IdP) mengautentikasi pengguna dan menerbitkan pernyataan (Okta, Entra ID, Ping).
- Penyedia Layanan (SP) adalah aplikasi yang memercayai IdP dan memberikan akses.
Kepercayaan dibangun di luar jalur dengan bertukar metadata, termasuk sertifikat penandatanganan dan URL titik akhir.
IdP -> authenticates user, signs assertion
SP -> consumes assertion, grants access
Metadata exchange establishes trust (certs, ACS URLs)Pernyataan SAML
Artefak utamanya adalah pernyataan, yaitu dokumen XML yang menyatakan bahwa IdP telah mengautentikasi suatu subjek.
- Subjek mengidentifikasi pengguna (NameID).
- Kondisi menentukan periode validitas dan audiens yang dituju.
- AuthnStatement mencatat bagaimana dan kapan autentikasi berlangsung.
- AttributeStatement membawa klaim peran, alamat surel, dan grup.
<saml:Assertion>
<saml:Subject><saml:NameID>user@corp</saml:NameID></saml:Subject>
<saml:Conditions NotOnOrAfter="2026-06-04T10:05:00Z"
AudienceRestriction="https://sp.example"/>
<saml:AuthnStatement .../>
</saml:Assertion>Alur SSO yang Dimulai SP
Pola yang paling umum adalah SSO yang dimulai oleh SP.
- Pengguna membuka SP, yang membuat
AuthnRequestlalu mengalihkan pengguna ke IdP. - IdP mengautentikasi pengguna dan mengirimkan
Responsebertanda tangan melalui POST ke Assertion Consumer Service (ACS) milik SP. - SP memvalidasi pernyataan dan membuat sesi lokal.
1. SP -> AuthnRequest -> IdP (redirect)
2. user authenticates at IdP
3. IdP -> signed SAMLResponse -> SP ACS (HTTP POST)
4. SP validates -> sessionTanda Tangan XML Menjadi Jangkar Kepercayaan
Keamanan SAML bertumpu pada tanda tangan digital XML. IdP menandatangani pernyataan (dan/atau respons) dengan kunci privatnya; SP memverifikasinya menggunakan sertifikat tepercaya.
- Tandatangani pernyataan itu sendiri, bukan sekadar respons luarnya.
- Verifikasi tanda tangan terhadap sertifikat IdP yang dipatok dari metadata, bukan sertifikat yang disematkan dalam pesan.
Sebagian besar serangan SAML menargetkan logika validasi tanda tangan.
Pembungkusan Tanda Tangan XML (XSW)
Pembungkusan Tanda Tangan XML adalah kelas serangan tanda tangan pada SAML. Penyerang mempertahankan elemen yang ditandatangani secara valid, tetapi menambahkan pernyataan palsu kedua yang sebenarnya dibaca oleh logika aplikasi.
- Tanda tangan tetap lolos verifikasi terhadap fragmen asli.
- Namun, logika bisnis memproses pernyataan yang disisipkan dan tidak bertanda tangan.
Mitigasi: gunakan pustaka SAML yang diperkuat, validasi bahwa elemen yang ditandatangani adalah elemen yang digunakan, dan tolak dokumen dengan banyak pernyataan atau pernyataan yang ambigu.
Document after XSW:
<Response>
<Assertion id="evil">attacker claims</Assertion> // read by app
<Assertion id="orig" SIGNED>real user</Assertion> // sig valid here
</Response>Pembatasan Audiens dan Penerima
Pernyataan harus terikat pada SP yang dituju. SAML menyediakan pembatasan yang jelas.
- AudienceRestriction menyebutkan ID entitas SP yang menjadi tujuan validitas pernyataan.
- Penerima dalam SubjectConfirmation harus cocok dengan URL ACS.
SP harus menerapkan pembatasan ini. Melewatkan pemeriksaan audiens memungkinkan pernyataan yang diterbitkan untuk satu aplikasi diputar ulang ke aplikasi lain.
Perlindungan terhadap Pemutaran Ulang dan Waktu
Pernyataan adalah kredensial berumur pendek dan sekali pakai. SP harus menerapkan aturan tersebut.
- Patuhi
NotBeforedanNotOnOrAfterdengan toleransi perbedaan jam yang ketat. - Lacak
IDpernyataan dan tolak setiap penggunaan ulang selama periode validitas. - Wajibkan TLS pada titik akhir ACS.
Tanpa pelacakan pemutaran ulang, pernyataan yang disadap dapat dikirimkan kembali sebelum kedaluwarsa.
SP checks:
now in [NotBefore, NotOnOrAfter] (+- small skew)
assertion.ID not seen before -> store + reject reuseFederasi dan Rantai Kepercayaan
Federasi memperluas SSO melintasi batas organisasi, terkadang melalui hub atau perantara yang menerjemahkan antarprotokol.
- Setiap tautan kepercayaan merupakan titik lemah potensial; penyedia identitas yang disusupi dapat menyamar sebagai setiap pengguna.
- Perantara identitas dapat menjembatani SAML dan OIDC, sehingga memerlukan pemetaan klaim yang cermat.
Terapkan hak akses minimum pada pemetaan atribut dan pantau pendaftaran SP baru yang tidak terduga.
Kelemahan SAML yang Umum
Mode kegagalan SAML yang berulang dan layak diaudit:
- Tanda tangan tidak diverifikasi, atau respons ditandatangani tetapi asersi tidak.
- Rentan terhadap Pembungkusan Tanda Tangan XML.
- Pemeriksaan audiens/penerima tidak ada.
- Tidak ada perlindungan pemutaran ulang atau jendela validitas yang terlalu panjang.
- Penguraian Entitas Eksternal XML (XXE) pada SP.
- Mempercayai sertifikat yang disematkan dalam pesan, bukan metadata yang dipatok.
Disable external entities in the XML parser:
parser.setFeature(
"http://apache.org/xml/features/disallow-doctype-decl", true)SAML vs OIDC
Keduanya menyediakan SSO, tetapi memiliki desain yang berbeda.
- SAML XML, pengikatan POST/pengalihan peramban, banyak digunakan di lingkungan perusahaan/tenaga kerja, serta memiliki perkakas yang matang.
- OIDC JSON/JWT, ramah REST, dan lebih cocok untuk perangkat seluler serta SPA.
Banyak organisasi menjalankan keduanya. Para pembela harus mengetahui aturan validasi asersi untuk protokol yang digunakan oleh aplikasi tertentu, karena permukaan serangannya berbeda.
Pemeriksaan Singkat: Mengatasi XSW
Pilih pertahanan terbaik untuk serangan yang dijelaskan.
Ringkasan: SAML dan Federasi
Hal-hal penting:
- SAML adalah SSO perusahaan berbasis XML antara penyedia identitas dan SP menggunakan asersi yang ditandatangani.
- Keamanan bergantung pada validasi tanda tangan XML yang benar terhadap sertifikat yang dipatok.
- Lindungi sistem dari Pembungkusan Tanda Tangan XML, pemutaran ulang, dan XXE.
- Selalu terapkan pembatasan audiens/penerima dan jendela validitas.
- Federasi memperluas kepercayaan, tetapi memperbesar radius dampak jika penyedia identitas disusupi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “SAML dan Federasi” gratis?
Ya — teks lengkap “SAML dan Federasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “SAML dan Federasi”?
Login tunggal untuk perusahaan. Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?
Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “SAML dan Federasi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?
Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.