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.
Implementasikan tiga function yang merepresentasikan alur SSO/SAML antara SP (Service Provider) dan IdP (Identity Provider).
1. buildAuthRequest(spEntityId, idpUrl, requestId)
SP membangun AuthnRequest untuk dikirim ke IdP. Kembalikan:
{ type: "AuthnRequest", id: requestId, issuer: spEntityId, destination: idpUrl }
2. validateAssertion(assertion, spEntityId)
SP memvalidasi SAML assertion dari IdP. assertion adalah { recipient, subject, attributes }.
assertion.recipient !== spEntityId → { valid: false, reason: "Wrong recipient" }{ valid: true, userId: assertion.subject }3. extractRoles(assertion)
Ekstrak daftar role dari assertion.attributes.roles. Kembalikan array tersebut, atau [] jika tidak ada.