Latihan 1 dari materi Single Sign-On & SAML di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi tiga function di kode awal. Latihan ini memakai object JavaScript sebagai pengganti XML SAML.
Kalau sama: kembalikan { valid: true, userId: assertion.subject }.
Di SAML, membandingkan dengan entity ID SP adalah cek Audience; Recipient dibandingkan dengan URL ACS.
extractRoles(assertion): kembalikan array assertion.attributes.roles, atau [] kalau gak ada.
Baris-baris console.log dan object assertion di kode awal sudah ada, biarkan begitu. Output-nya harus persis delapan baris ini, berurutan:
Dicek juga: buildAuthRequest("https://toko.id", "https://idp.x/sso", "r7").id adalah r7, validateAssertion untuk [email protected] dengan audience https://toko.id di https://toko.id memberi userId[email protected], dan extractRoles({ attributes: {} }) memberi array kosong (panjangnya 0).
Hint
Tiga function ini kecil: satu membuat object permintaan, satu membandingkan audience assertion dengan entity ID SP, satu mengambil daftar role dengan cadangan array kosong.
buildAuthRequest cukup return object literal dengan empat property. validateAssertion: satu if yang membandingkan assertion.audience dengan spEntityId, lalu dua return. extractRoles: baca assertion.attributes.roles, dan kalau gak ada pakai [].