Perinteisten yhteys- ja tunnistuskäytänteiden esiin tuominen edellisessä artikkelisarjan osassa oli tärkeää, jotta nähdään kertakirjautumisen kehittymisen kaari. Uudempiin protokolliin tutustumisen aloitamme varttuneen, mutta edelleen vahvan käytänteen, eli SAML:n kautta. Vuosituhannen vaihteessa määritettiin yleiseen käyttöön levinnyt edelleen hyvin laajasti käytössä oleva SAML-protokollakehikko.
SAML pohjautuu XML-kuvauskieleen ja SAML-viestit välitetään XML-muotoisina. XML on kattava kuvauskieli, sillä siinä on tuettuna laaja kirjo ominaisuuksia kuten skeemat, joilla voidaan todentaa viestin määrämuotoisuus. XML:ssä on kuvattu myös erittäin tarkasti viestien allekirjoitusten käsittely ja viestien kryptografinen suojaaminen käyttäen vahvoja salausmenetelmiä. Näitä tärkeitä piirteitä ei enää tarvitse toistaa SAML-protokollan tasolla, joskin profiileissa on jouduttu ottamaan kantaa joihinkin turvallisen viestinvaihdon käytänteisiin ja salausalgoritmien käyttöön.
XML:n tukemien ominaisuuksien ansiosta SAML-viestien todentamisessa toteutetaan monikerroksista suojausta, joka voi alkaa siitä, että viesti hylätään, jos se ei ole määrämuotoinen. Laskentatehoa vaativat operaatiot, kuten allekirjoituksen tarkastaminen tai salauksen purku voidaan jättää tehtäväksi vasta kun viesti on läpäissyt määrämuotoisuustestin.
Yleisesti keskusteluissa SAML nähdään vain yhtenä protokollana tai määrityksenä, mutta kuten WS-Federation:n tapauksessa, kyseessä on laaja perhe määrityksiä, joissa ei pelkästään kuvata turvallista viestinvaihtoa osapuolien välillä, vaan myös miten osapuolien välille muodostetaan luottosuhde, miten teknistä metatietoa osapuolien ominaisuuksista vaihdetaan ja minkälaisia profiileja noudatetaan erilaisissa päätelaiteympäristöissä ja verkoissa.
Parhaiten tunnettu ja eniten käytetty profiili SAML:ssa on Web Browser SSO Profile. Vertailun vuoksi, vastaavasti on määritelty esim. ECP-profiili, joka sopii erityisesti Webin ulkopuoliseen tunnistamiseen esimerkiksi natiivien mobiiliapplikaatioiden käyttötapauksessa tai konekielisten palvelujen keskinäisessä tunnistamisessa.
Keskitytään Web SSO profiiliin. SAML:n 2. version myötä profiili yksinkertaistui, kun SAML1:ssä käytetyistä artifakteista luovuttiin. SAML1:ssä tehtiin tunnistamisen jälkeen erillinen attribuuttikysely, jolla saatiin käyttäjästä lisätietoja, eli attribuutteja. Attribuutit ovat tiedonmurusia jotka kertovat käyttäjän oninaisuuksista. Niitä ovat esimerkiksi tieto käyttäjän nimestä, sähköpostiosoitteesta, profiilikuvasta ja vaikkapa kengän numerosta. Attribuutit välitettiin SAML1:n aikana artifakteina.
SAML2:n Web SSO -profiilissa voidaan HTTP-Post sidonnan (binding) yhteydessä kaikki tunnistustapahtumaan liittyvä tieto – attribuutit mukaan lukien – palauttaa yhdessä ja samassa tunnistusvastauksessa (Authentication Response). Tunnistusvastaus sisältää vakuutuksen (Assertion), jossa tunnistuspalvelin vakuuttaa tunnistaneensa käyttäjän sovitulla tavalla ja kertoo käyttäjän ominaisuuksista ja mm. siitä, miten, missä yhteydessä ja kuinka pitkään kyseistä tunnistusvastausta voi hyödyntää.
Web SSO HTTP-Post -sidonnan yhteydessä erityisen hyödyllistä on, että kaikki tieto välitetään käyttäjän selaimessa. Tunnistukseen tukeutuvan palvelun ja tunnistuspalvelun välillä ei tarvita suoraa TCP/IP-tason tietoliikenneyhteyttä, vaan riittää, että käyttäjän selaimella on TCP/IP-yhteydellä pääsy sekä tunnistuspalvelimeen, että tunnistukseen tukeutuvaan palveluun.
Tämä piirre on erityisen hyödyllistä toteutettaessa kertakirjautumista organisaatioiden välillä. Organisaatiot haluavat suojata verkkonsa ulkopuollisten pääsyltä palomuureilla ja perinteisesti kertakirjautumisen toteuttaminen organisaatiorajojen yli on vaatinut hankalia yhteydenavauksien prosesseja ja tietoliikenneyhteyksien avaamisesta sopimista.
SAML on koettu hankalaksi toteuttaa. Tämä johtuu todennäköisesti pitkälti siitä, että protokollaperhe on valtavan laaja. Sen toteuttaminen vaatii syvällistä tuntemusta IT-alalla hyvin monelta eri osa-alueelta ja vielä käytännön prosessien toteuttamisesta. SAML onkin väistynyt uusien, väitetysti yksinkertaisempien protokollien edestä. Totuus piilee yksityiskohdissa ja syy SAML:n monimutkaisuuteen on se, että tietoturvallisuuteen ja henkilöiden tietosuojaan liittyviä asioita on pohdittu syvällisesti. Kertakirjautuminen on monimutkainen kokonaisuus. Näennäisesti yksinkertaisen protokollan edessä on kysyttävä: “onko tämä myös turvallinen”.
Onkin tapana sanoa, että uutiset SAML:n kuolemasta ovat ennenaikaisia. SAML on niin syvälle juurtunut, että se ei häviä maailmalta vielä pitkään. Silti niin on, että uusia teknologioita on noussut ja ne ottavat alaa myös organisaatiorajat ylittävässä kertakirjautumisessa.