Informacija apie SAML standartą, kuriuo pagrįsti federacijos autentifikacijos ir autorizacijos procesai.
Autentifikacijos ir autorizacijos duomenys federacijoje siunčiami remiantis SAML 2.0 standartu.
SAML 2.0 standartas
Standartų organizacija OASIS sukūrė SAML (angl. Security Assertion Markup Language) standartą. SAML pagrįstas XML (XML schema) ir aprašo kaip saugos informaciją saugoti XML struktūrose, t.y. SAML aprašo kaip turi būti pateikta autentifikavimo, autorizavimo ir atributų informacija, kuri gali būti panaudota įvairiose sistemose. SAML 2.0 naudoja patvirtinimus, kad informaciją apie asmenį galėtų perduoti tarp SAML teikėjo, t.y. IDP, ir e-paslaugos, t.y. SP. SAML‘u pagrįsta autentifikacija ir autorizacija internete, pavyzdžiui SSO. Kadangi SAML yra labai lankstus standartas, du federacijos partneriai gali išsirinkti bet kokius tapatybių atributus apsikeitimui SAML Patvirtinimo žinutėse, jei tik tuos atributus galima atvaizduoti XML‘e. Dėl savo lankstumo SAML netgi įtrauktas į kitus standartus, pavyzdžiui, WS-Federations. SAML stadarto lankstumas, taip pat yra privalumas prieš kitokius SSO mechanizmus, kadangie jie reikalauja abiems pusėms (IDP ir SP) naudoti tokią pačia PĮ. Tai vieningas standartas skirtas perduoti saugos informaciją, kurį supranta paslaugos, nepriklausomai nuo to kokia technologija jos realizuotos ir kokia yra įmonės saugos politika.
SAML 2.0 rolės
SAML specifikacijoje yra 3 rolės: pagrindinis atlikėjas, arba naudotojas, tapatybių teikėjas (IDP), paslaugų teikėjas (SP). Realiu atveju, kurį nagrinėja SAML, naudotojas siunčia paslaugos užklausą SP. Tuomet SP siunčia tapatybės patvirtinimo užklausą IDP. IDP prieš siunčiant tapatybės patvirtinimą SP, siunčia autentifikacijos užklausą naudotojui, iš jo gauna prisijungimo vardą ir slaptažodį, ir jį autentifikuoja. Remdasis gautu tapatybės patvirtinimu, SP gali priimti prieigos valdymo sprendimą, t.y. ar suteikti šiam naudotojui prieigą prie paslaugos, ar ne. SAML aprašo patvirtinimus tarp šių trijų šalių, ypač žinutes, kurios patvirtina tapatybes ir kurios keliauja tarp IDP ir SP. Tačiau SAML neapibrėžia IDP įgyvendinimo technologijos, todėl jis gali naudoti paprastą prisijungimo vardo/slaptažodžio, ar daugybinių faktorių autentifikaciją, ar dar kitokį savo būdą.
SAML 2.0 SSO Profilis
SAML 2.0 aprašo Interneto naršyklės SSO Profilį, kuriame veikia IDP, SP ir naudotojas valdantis HTTP priemonę (naršyklę). SP turi keturis Binding variantus, o IDP savo ruožtu turi 3 variantus, taigi iš viso yra 12 galimų įgyvendinimo scenarijų. Čia parodome vieną jų.
Šiuo atveju tiek SP, tiek IDP naudoja HTTP POST ir GET Susiejimus.
1 – Naudotojas per HTTP agentą siunčia užklausą SP dėl priėjimo prie resurso. SP atlieka saugos patikrinimą dėl prašomo resurso prieigos. Jei SP pusėje jau egzistuoja galiojantis saugumo konktekstas, praleidžiame 2-6žingsnius.
2 – SP nukreipia su <AuthnRequest> naudotojo agentą į IDP SSO, GET su <AuthnRequest>.
3 –IDP per SSO siunčia naudotojui užklausą autentifikuotis
4 – Naudotojas per agentą patvirtiną savo tapatybę – autentifikuojasi
5 – IDP suformuoja SAML atsakymą, pasirašytą, HTML forma ir per naudotojo agentą siunčia jį naršyklei
6 – naršyklė savo ruožtu per POST siunčia atsakymą su autentifikacijos duomenimis siunčia SP <Response>.
7 – pagal gautą autentifikacijos patvirtinimą, SP sprendžia kokio lygio prieigą suteikti naudotojui prie savo resursų.