Suomi.fi kehittäjille
Siirry suoraan sisältöön.

Rajapintakuvaus

Artikkelissa esitetään Suomi.fi-tunnistuksen tekninen rajapintakuvaus, toimintaympäristö, yleiskuvaus palvelun toiminnasta ja yleiset tekniset ominaisuudet.

Suomi.fi-tunnistuksen toimintaympäristö

Tunnistus-palvelu tarjoaa asiointipalvelulle loppukäyttäjän tunnistamisen SAML 2.0 -standardin mukaisen rajapinnan kautta. Loppukäyttäjälle Tunnistus tarjoaa mahdollisuuden valita itselleen sopivimman tunnistamistavan sekä kertakirjautumisen Tunnistus-palveluun liitettyihin asiointipalveluihin.

Asiointipalvelu voi rajata loppukäyttäjän tunnistuksessa sallittujen tunnistusvälineiden joukkoa. Mikäli loppukäyttäjä on tunnistettu vahvasti, Tunnistus-palvelu täydentää hänen tietojaan väestötietojärjestelmästä.

Kuvassa 1 on havainnollistettu Tunnistus-palvelun toimintaympäristöä.

Kuva 1. Tunnistus-palvelun toimintaympäristö.

Yleiskuvaus Tunnistus-palvelun toiminnasta

Asiointipalvelu käyttää Suomi.fi-tunnistusta käyttäjän tunnistamiseen. Suomi.fi-tunnistus esittää käyttäjälle asiointipalvelun hyväksymällä tasolla olevien tunnistusvälineiden tarjoajat, joista käyttäjä valitsee itselleen sopivan tunnistautumisen.

Suomalaisten tunnistusvälineiden osalta Tunnistus-palvelu tarkistaa väestötietojärjestelmästä, että tunnistetun loppukäyttäjän henkilötunnus on aktiivinen ja sen omistaja on elossa, sekä täydentää loppukäyttäjän tietoja väestötietojärjestelmästä. Tunnistus-palvelu tuottaa onnistuneesta tunnistautumisesta SAML 2.0 -standardin mukaisen viestin, jossa halutut tiedot välittyvät asiointipalvelulle loppukäyttäjän selaimen kautta.

eIDAS-tunnistautuneiden käyttäjien osalta käyttäjästä välitetään yksilöivä PID-tunniste ja nimi- sekä syntymäaikatiedot ja käyttäjä ohjataan asiointipalveluun. Näiden käyttäjien osalta tietoja ei voida täydentää väestötietojärjestelmästä.

Tunnistusväline ”urn:oid:1.2.246.517.3002.110.7” palauttaa tunnistetusta käyttäjästä yksilöivän tunnisteen, syntymäajan ja nimitiedot.

Tunnistus-palvelun arkkitehtuurissa asiointipalvelun, Tunnistuksen ja tunnistusvälineiden tarjoajien palveluiden välille ei tarvita suoria yhteyksiä, vaan kaikki liikennöinti tapahtuu SAML 2.0 -standardin mukaisesti loppukäyttäjän selaimen kautta.

Loppukäyttäjän tunnistamiseen ja henkilötietojen siirtämiseen käytetty tietoliikenne ja osapuolten identiteetti suojataan HTTPS-yhteyksin. Viestien eheys varmistetaan SAML 2.0 -standardin mukaisesti.

Tunnistus-palvelun varmuustasot

Tunnistus-palvelussa on käytössä Viestintäviraston luottamusverkostomäärittelyn mukaiset tunnistuksen varmuustasot. Varmuustasolla tarkoitetaan tunnistusvälineen "vahvuutta" eli luottamustasoa sen tarjoamaan henkilöllisyystietoon. Asiointipalvelut määrittelevät itse, mikä on riittävän vahva tunnistuksen varmuustaso. Muut kuin vahvat välineet valitaan yksitellen.

Varmuustasojen kuvaus:

  • Korkea varmuustaso – vahvan tunnistamisen korkein varmuustaso. Tälle tasolle on suomalaisista tunnistusvälineistä määritelty varmennekorttitunnistaja.
  • Korotettu varmuustaso – vahvan tunnistamisen korotettu varmuustaso. Tälle tasolle on suomalaisista tunnistusvälineistä määritelty hightrust.id, pankki- ja mobiilivarmennetunnistajat.
  • Ei varmuustasoa – osaa tunnistusvälineistä ei ole määritelty millekään varmuustasolle, vaan ne määritellään erikseen.

Tunnistus-palvelun varmuustasot koskevat myös eurooppalaista eIDAS-tunnistamista. Suomalaisen luottamusverkostomäärittelyn korkea ja korotettu varmuustaso vastaavat määrittelyltään eIDAS-tunnistamisen korkeaa (high) ja korotettua (substantial) varmuustasoa.

eIDAS-tunnistamisen varmuustasot on syyskuusta 2018 alkaen määriteltävä hyväksytyiksi suomalaisten luottamusverkoston varmuustasojen rinnalla. Tunnistustapahtumista välitetään asiointipalveluille vastauksena joko luottamusverkoston vamuustaso tai eIDAS-tunnistautumisen varmuustaso riippuen siitä, onko käyttäjä tunnistautunut suomalaista tunnistusvälinettä vai eIDAS-tunnistamista käyttäen.

Kertakirjautuminen ja kertauloskirjautuminen

Tunnistus-palvelu luo tunnistetulle loppukäyttäjälle kertakirjautumisistunnon, joka mahdollistaa kaikkien Tunnistukseen liitettyjen asiointipalveluiden käyttämisen samalla kirjautumisella. Kertakirjautumisistunto on voimassa 32 minuuttia. Asiointipalvelu voi kuitenkin päättää oman palvelunsa session-pituuden vapaasti.

Kertakirjautumisessa noudatetaan asiointipalveluiden hyväksymiä välineitä ja varmuustasoja. Asiointipalveluun pääsy ilman uudelleentunnistautumista on mahdollista vain, mikäli istunnon luonnissa käytetty varmuustaso tai väline vastaa vähintään sitä, mitä asiointipalvelulle on määritelty.

Tunnistus-palveluun liitetyn asiointipalvelun on tuettava SAML 2.0 -standardin mukaista kertauloskirjausta. Loppukäyttäjän kirjautuessa ulos päätetään myös muut, samaan kertakirjautumisistuntoon kuuluvat istunnot. Asiointipalvelun pitää pystyä sekä aloittamaan uloskirjauksen prosessi että käsittelemään Tunnistukselta saapuvat uloskirjauspyynnöt. Uloskirjaus omasta palvelusta tulee hoitaa ennen uloskirjauspyynnön lähettämistä Suomi.fi-tunnistukselle.

Asiointipalvelu ei saa toteuttaa uloskirjausta back-channel tyyppisesti, sillä uloskirjauduttaessa käyttäjälle näytetään kaikkien palveluiden uloskirjauksen statustieto ja käyttäjän tulee vahvistaa uloskirjaus tämän jälkeen.

Suomi.fi-tunnistuksen teknisestä toteutuksesta johtuen uloskirjaussivulla (SLO) odotetaan vastausta iframessa. Asiointipalvelun tulee sallia tämä omissa asetuksissaan. (Content-Security-Policy: frame-ancestors 'self' https://tunnistautuminen.suomi.fi; )

Kertakirjautumisistuntoa ei muodostu silloin, kun käyttäjä on tunnistettu käyttäen eIDAS-tunnistautumista. Tällöin käyttäjä joutuu toiseen asiointipalveluun siirtyessään tunnistautumaan uudelleen.

Vaatimukset Tunnistus-palvelun loppukäyttäjän käyttöympäristölle

Tunnistus-palvelu on tarkoitettu selainkäyttöön. Sen käyttöliittymät ovat selainkäyttöisiä, samoin kuin Tunnistuksessa hyödynnettävien tunnistusvälineiden omat käyttöliittymät.

Tunnistus-palvelua voidaan käyttää eri kielivaihtoehdoilla (suomi, ruotsi tai englanti).

Tunnistus-palvelun käyttö ei edellytä loppukäyttäjää asentamaan työasemaansa ohjelmistoja. Loppukäyttäjän tunnistamisessa käytettävät tunnistusvälineet voivat edellyttää lisäkomponentteja, kuten varmennekortinlukijaa.

Loppukäyttäjän selainohjelmisto

Tunnistus-palvelun vaatimukset selaimelta:

  • Tunnistus-palvelu on toteutettu HTML 5.0 -standardin mukaisesti, mutta se toimii myös karsitummalla ulkoasulla, jos selain ei tue HTML 5.0 -standardia.
  • Tunnistus-palvelu edellyttää istuntoevästeiden (HTTP session cookies) ja JavaScriptin sallimisen selaimessa.
  • Tunnistus-palvelu käyttää TLS-versiota 1.2.

Tunnistusvälineiden käyttö

Tunnistusvälineet voivat edellyttää loppukäyttäjältä erityisten välineiden tai ohjelmistojen käyttöä:

  • Pankkitunnisteet voivat perustua esimerkiksi avainlukulistaan tai mobiilisovellukseen.
  • Digi- ja väestötietoviraston myöntämällä varmennekortilla (esim. henkilökortti, sosiaali- ja terveydenhuollon toimikortti, organisaatiokortti) tunnistaminen toteutetaan työasemassa olevan kortinlukijan ja korttiohjelmiston avulla.
  • Mobiilivarmenteeseen perustuvassa tunnistuksessa hyödynnetään operaattorin SIM-korttia ja matkapuhelinta.
  • Hightrust.id - lompakkosovelluksen käyttöönottoon tarvitaan varmennekortti ja sovelluskaupasta ladattu mobiilisovellus.

Tunnistus-palvelu mobiililaitteessa

Tunnistus-palvelun käyttöliittymä toimii selaimessa. Se on käytettävissä myös mobiililaitteissa niillä rajoituksilla, jotka on esitetty kohdassa Loppukäyttäjän selainohjelmisto. Eri tunnistusvälineet saattavat asettaa rajoitteita mobiililaitteiden käytölle.

Tunnistus-palvelun yleiset tekniset ominaisuudet

Tunnistus-palvelun rajapinta käyttää SAML 2.0:aa Sanomat välitetään pakattuina (Deflate -algoritmilla) ja Base64 enkoodattuina.

Tekninen liittyminen

Asiointipalvelu liitetään Tunnistus-palveluun toimittamalla sen perustiedot (metadata) Tunnistus-palvelun ylläpidolle. Tutustu tarkemmin asiointipalvelun metadatatietoihin Tunnistus-palvelussa.

Tunnistus-palvelu ja asiointipalvelu allekirjoittavat lähettämänsä SAML 2.0 -viestit, joiden alkuperän varmistamiseksi vastaanottajalla on oltava lähettäjän julkinen avain (varmenne). Liittymisen yhteydessä Tunnistuksen varmenne ladataan asiointipalvelun palvelimelle. Asiointipalvelun varmenne/varmenteet välitetään Tunnistukselle osana asiointipalvelun perustietoja (metadata).

SAML-viestien välitys

Tunnistus-palvelun ja asiointipalvelun väliset SAML-viestit kulkevat loppukäyttäjän selaimen kautta HTTP-standardin GET- ja POST-komennoilla. SAML 2.0 -standardi määrittelee miten SAML-viesti kussakin HTTP-komennossa välitetään.

Asiointipalvelu kutsuu Tunnistus-palvelua lähettämällä paluuosoitteen sisältävän tunnistuspyyntöviestin loppukäyttäjän selaimen GET- tai POST-komennolla. Tunnistus-palvelu antaa loppukäyttäjän tunnistaa itsensä valitsemallaan tavalla. Tunnistus-palvelu lähettää vastausviestin asiointipalvelulle paluuosoitteeseen tehdyllä POST-komennolla.

Viestiliikenne salataan TLS-yhteyskäytännöllä, eli kaikki kutsu- ja vastausviestit välitetään HTTPS-yhteyksiä käyttäen. Asiointipalvelun tulee huolehtia siitä, että kaikki loppukäyttäjän selaimen ja asiointipalvelun väliset yhteydet ovat HTTPS-suojattuja.

Henkilötietoja sisältävä osa paluuviestistä salataan symmetrisellä salauksella, jonka salausavain salataan epäsymmetrisesti palvelun perustiedoissa (metadata) olevalla julkisella avaimella. Asiointipalvelun tulee määritellä salaukseen käytettävä avain perustiedoissaan (metadata) käyttötarkoituksella ”encryption” tai jättämällä avaimen käyttötarkoitus määrittämättä kokonaan.

Tunnistus-palvelua kutsutaan HTTPS-yhteyttä käyttäen. Asiointipalvelun viesteissään antaman paluuosoitteen tulee hyödyntää HTTPS-protokollaa.

Kaikki SAML-viestit allekirjoitetaan viestien lähettäjän, eheyden ja muuttumattomuuden varmistamiseksi. Osapuolten on tarkastettava vastaanottamiensa viestien allekirjoitus.

Testaus

Tunnistus-palveluun liittymistä helpottaa, jos käytössä on SAML-sanomia avaava työkalu. Selaimiin on saatavilla laajennusosia, esimerkiksi Firefoxiin ”SAML tracer” sekä Chromeen ”SAML Chrome Panel” ja ”SAML Message Decoder”.

Tunnistaminen

Tunnistus-palvelussa tehty loppukäyttäjän tunnistaminen on kertakirjautuminen kaikkiin Tunnistukseen liitettyihin asiointipalveluihin. On mahdollista, että myös käytetty tunnistusväline tarjoaa kertakirjautumistoiminnallisuuden, mutta sitä Tunnistus ei voi huomioida.

Esimerkki tunnistustapahtumasta

Kuvassa 2 on esimerkki tunnistustapahtumasta. Sen vaiheista on kerrottu kuvan jälkeen.

Kuva 2. Esimerkki tunnistustapahtumasta.

  1. Loppukäyttäjä aktivoi sisäänkirjautumisen.
  2. Asiointipalvelu havaitsee, että loppukäyttäjää ei ole tunnistettu.
  3. Asiointipalvelu ohjaa loppukäyttäjän Tunnistus-palveluun ja välittää ohessa selaimelle SAML-tunnistuspyynnön.
  4. Loppukäyttäjän selain välittää SAML-tunnistuspyynnön Tunnistus-palvelulle.
  5. Tunnistus-palvelu vastaanottaa SAML-tunnistuspyynnön ja palauttaa selaimelle tunnistusvälineiden valintasivun.
  6. Loppukäyttäjä valitsee haluamansa tunnistusvälineen ja käy tunnistautumassa.
  7. Tunnistusvälineen tarjoaja ohjaa selaimen takaisin Tunnistukseen.
  8. Selain välittää Tunnistukselle tunnistusvälineen ja tarjoajalta saadun loppukäyttäjän yksilöivän tunnisteen.
  9. Tunnistus-palvelu muodostaa kertakirjautumisistunnon ja luo loppukäyttäjän tiedot sisältävän SAML-viestin, jonka se välittää selaimelle samalla, kun Tunnistus-palvelu ohjaa selaimen asiointipalveluun.
  10. Selain välittää SAML-tunnistusvastauksen sisältämät henkilötiedot asiointipalvelulle, joka aloittaa istunnon tunnistetulle loppukäyttäjälle.
  11. Asiointipalvelu palauttaa loppukäyttäjälle tämän alun perin pyytämän suojatun resurssin.

Asiointipalvelu voi välittää tunnistuspyynnön esimerkiksi antamalla selaimelle HTML-lomakkeen, jossa on SAML-viesti piilokentissä. Lomakkeen voi lähettää automaattisesti suoritettava skripti tai loppukäyttäjä painamalla lomakkeen submit-nappia.

...
<form name=”APRO” method=”POST” action= ”https://testi.apro.tunnistus.fi/idp/profile/SAML2/POST/SSO">
<input type=”hidden” name=”SAMLRequest” value=”fZJBU8I...”/>
<input type=”hidden” name=”RelayState” value=”ss%3Amem%3Ac3”/>
<input type=”hidden” name=”SigAlg” value”=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256”/>
<input type=”hidden” name=”Signature” value=”sO%2Fw..”/>
</form>
...
var form = document.APRO;
form.submit();
...

<input type="submit" value="Siirry tunnistautumaan">

Alla olevissa esimerkeissä on käytetty seuraavia nimimäärityksiä, jotka on sisällytetty kokonaisiin SAML 2.0 -viesteihin sanomien välityksessä:

xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"

Tunnistuspyyntö

Tunnistustapahtumaa ohjaavat tiedot on määritelty perustiedoissa (metadata), jotka asiointipalvelu on toimittanut Tunnistukseen liittyessään.

Tunnistuspyynnön sisältöä räätälöimällä voi vaikuttaa käyttäjälle näkyvään käyttöliittymään ja paluuviestiin. Tunnistuspyynnössä voi esimerkiksi valita, mitä kieltä Tunnistuksen tulee käyttää käyttöliittymässään, mitä tunnistusvälineitä loppukäyttäjälle näytetään ja mihin käyttäjän selain tunnistustapahtuman jälkeen ohjataan.

Tuetut sidokset (bindings) ovat HTTP POST ja HTTP REDIRECT.

Tunnistuspyyntö tulee olla allekirjoitettu (vähintään SHA256 -tasoisella algoritmilla).

Asiointipalvelun tunnus

Selitys

Asiointipalvelun tunnus. Viittaa asiointipalvelun metadatassa määriteltyyn entityID-attribuuttiin.

Tunnuksen perusteella Tunnistus löytää asiointipalvelun määritykset, mukaan lukien varmenteen, jonka avulla viestin alkuperä voidaan varmistaa.

Sijainti

saml2p:AuthnRequest-elementin saml2:issuer-elementti.

Muoto


Merkkijono, pituus korkeintaan 1 024 merkkiä.

URL-muoto.

Pakollisuus

Pakollinen.

Malli

<saml2p:AuthnRequest …>

<saml2:Issuer>https://kalastus.kunta.fi/lupa-asiat</saml2:Issuer>

Taulukko 1. Asiointipalvelun tunnus, tunnistuspyyntö.

Tunnistus-palvelun osoite

Selitys

Viestin kohdeosoite, eli Tunnistus-palvelun osoite. Määritelty Tunnistuksen metatiedoissa sidoskohtaisesti.

Sijainti

saml2p:AuthnRequest-elementin attribuutti Destination.

Muoto

Merkkijono.

Pakollisuus

Pakollinen.

Malli

<saml2p:AuthnRequest … Destination=”…”

Taulukko 2. Tunnistus-palvelun osoite, tunnistuspyyntö.

Aikaleima

Selitys

Tunnistuspyynnön luontihetki.

Sijainti

saml2p:AuthnRequest-elementin issueInstant-attribuutti.

Muoto

Merkkijono, 20 merkkiä.

W3C XML Schema -määrityksen DateTime-tietotyyppi, joka on muotoa ”YYYY-MM-DDThh:mm:ss”.

UTC-muodossa, ilman aikavyöhykettä.

Pakollisuus

Pakollinen.

Pakollisuus

<saml2p:AuthnRequest… IssueInstant=”2015-09-28T16:27:36Z”…>

Taulukko 3. Aikaleima, tunnistuspyyntö.

Käyttöliittymän kieli

Käyttöliittymän kieli määrittyy ensimmäisen, samaan istuntoon liittyvän, tunnistuspyynnön kielivalinnan mukaan. Toisin sanoen, mikäli ensimmäinen palvelu johon tunnistaudutaan määrittää kieleksi ruotsin, on toiseen palveluun kirjauduttaessa käyttöliittymän kielenä niinikään ruotsi (riippumatta siitä, mitä seuraavissa palveluissa tunnistuspyyntöön kielivalinnaksi laitetaan). Tämä valinta jatkuu uloskirjaukseen asti.

Selitys

Käyttöliittymän kieli.

Sijainti

saml2p:Extensions -elementin vetuma. xmlns="urn:vetuma:SAML:2.0:extensions" -elementin LG-elementti.

Muoto

Merkkijono, 2 merkkiä.

ISO 639-1 -standardin mukainen kielikoodi.

Tunnistus-palvelun kielet ovat suomi (fi), ruotsi (sv) ja englanti (en).

Kielikoodin voi välittää myös HTTP-protokollassa muuttujan locale-arvona (vastaavasti kuin Tapahtumatunnus välitetään RelayState-muuttujassa).

Kielikoodin välitys toimii täten vain HTTP-Redirect-profiililla siten, että se on viimeinen query-parametri.

Tätä tapaa tulee käyttää vain, mikäli kielikoodia ei teknisistä syistä saada sisällytettyä SAML-sanomaan.

Pakollisuus

Ei pakollinen.

Malli

<saml2p:AuthnRequest

<saml2p:Extensions>
<vetuma xmlns="urn:vetuma:SAML:2.0:extensions">
<LG>sv</LG>
</vetuma>
</saml2p:Extensions>

Taulukko 4. Käyttöliittymän kieli, tunnistuspyyntö.

Asiointipalvelun paluuosoite tai viite paluuosoitteeseen

Selitys

Paluuosoite tai viite paluuosoitteeseen, jonne tunnistusvastaus välitetään.

Sijainti


saml2p:AuthnRequest-elementin AssertionConsumerServiceURL- tai AssertionConsumerServiceIndex-attribuutti.

AssertionConsumerServiceURL-attribuutin arvon on oltava asiointipalvelun metatiedoissa määritetty paluuosoite.

Vaihtoehtoisesti voidaan viitata asiointipalvelun metadatassa määritettyyn paluuosoitteeseen AssertionConsumerServiceIndex-attribuutin avulla.

Muoto

URL-osoite, jonka protokollan on oltava HTTPS, tai Tunnistus-palvelu hylkää viestin virhekoodilla Requester.

Pakollisuus

Ei pakollinen.

Malli

<saml2p:AuthnRequest …
AssertionConsumerServiceURL=”https://kalastus.kunta.fi/SAML2/POST"

tai

<saml2p:AuthnRequest …
AssertionConsumerServiceIndex=”1”

Taulukko 5. Asiointipalvelun paluuosoite tai viite paluuosoitteeseen, tunnistuspyyntö.

Tapahtumatunnus

Selitys

Asiointipalvelun määrittelemä tapahtumatunnus, joka mahdollistaa asiointipalvelun tilatiedon säilyttämisen tunnistautumistapahtuman läpi.

Tapahtumatunnuksen perusteella asiointipalvelu voi esimerkiksi ohjata loppukäyttäjän tunnistautumisen jälkeen oikealle sivulle.

Tapahtumatunnus ei sisälly SAML-viestiin, vaan se välitetään HTTP-protokollan mukana.

Sijainti

RelayState-muuttuja.

Muoto

Maksimissaan 80 tavua.

Pakollisuus

Ei pakollinen

Malli

<form method="post" action=”….
<input type="hidden" name="RelayState" value="token" />

Taulukko 6. Tapahtumatunnus, tunnistuspyyntö.

Hyväksytyt tunnistusvälineet

Selitys

Asiointipalvelu voi tunnistuspyynnössä rajoittaa perustiedoissaan määriteltyjen tunnistustapojen joukkoa listaamalla sallitut varmuustasot ja välineet.

Jos tunnistusvälineitä tai tasoja ei ole listattu, kaikki asiointipalvelun perustiedoissa määritellyt tunnistusvälineet ja varmuustasot sallitaan.

Huomaathan, että tunnistuspyyntöön ei voi määritellä sellaisia tunnistusvälineitä, joita ei ole mainittu asiointipalvelun perustiedoissa eli metadatassa. Tällöin tunnistuspyynnön käsittely johtaa virhetilanteeseen tunnistusvälineen valintasivulla.

Sijainti

saml2p:RequestedAuthnContext-elementin sisällä olevan saml2:AuthnContextClassRef-elementti.

Muoto

Merkkijono, jonka mahdolliset arvot ovat

http://ftn.ficora.fi/2017/loa3 = korkea
http://eidas.europa.eu/LoA/high = korkea (eIDAS)*
http://ftn.ficora.fi/2017/loa2 = korotettu
http://eidas.europa.eu/LoA/substantial = korotettu (eIDAS)*
urn:oid:1.2.246.517.3002.110.7
Lisäksi testiympäristössä:

urn:oid:1.2.246.517.3002.110.999 = testitunnistusväline.
*Huom! eIDAS-varmuustasot on määriteltävä samoin kuin Traficomin määrittelemät varmuustasot.

Pakollisuus

Ei pakollinen.

Malli

Korotetun varmuustason ja välineiden ilmaiseminen AuthnRequest-viestissä:

<saml2p:AuthnRequest

<saml2p:RequestedAuthnContext xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
Comparison="exact">
<saml2:AuthnContextClassRef>http://ftn.ficora.fi/2017/loa3</saml2:AuthnContextClassRef>
<saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/high</saml2:AuthnContextClassRef>
<saml2:AuthnContextClassRef>http://ftn.ficora.fi/2017/loa2</saml2:AuthnContextClassRef>
<saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/substantial</saml2:AuthnContextClassRef>
</saml2p:RequestedAuthnContext>

Korkean varmuustason ilmaiseminen AuthnRequest-viestissä:

<saml2p:AuthnRequest

<saml2p:RequestedAuthnContext xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
Comparison="exact">
<saml2:AuthnContextClassRef>http://ftn.ficora.fi/2017/loa3</saml2:AuthnContextClassRef>
<saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/high</saml2:AuthnContextClassRef>
</saml2p:RequestedAuthnContext>

Taulukko 7. Hyväksytyt tunnistusvälineet, tunnistuspyyntö.

Tunnuksen käsittely

Selitys

Autentikaatiotapahtuman yksilöintitiedot.

Sijainti

saml2p:AuthnRequest-elementin sisällä oleva saml2p:NameIDPolicy-elementti.

Muoto

Attribuutit AllowCreate ja Format.

Käytetään AllowCreate="true" ja Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient".

Pakollisuus

Pakollinen.

Malli

<saml2p:AuthnRequest 

<saml2p:NameIDPolicy AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>

Taulukko 8. Tunnuksen käsittely, tunnistuspyyntö.

Tunnistusvastaus

Tunnistus-palvelu palauttaa tunnistusvastauksessa tiedot tunnistetusta loppukäyttäjästä. Henkilöllisyyden lisäksi asiointipalvelu voi saada esimerkiksi loppukäyttäjän nimitiedot ja ajantasaiset yhteystiedot väestötietojärjestelmästä.

Tuettu sidos on HTTP POST.

Paluuvastaus salataan. Salaukseen käytetty algoritmi on oletuksena AES-GCM.

Salauksen voi määrittää tapahtuvaksi joko AES-CBC tai AES-GCM - algoritmeilla. Huomaathan, että AES-CBC:n käyttöä ei suositella. Asetus määritetään asiointipalvelun Suomi.fi-tunnistukselle rekisteröidyssä metadatassa.

Seuraavassa esitetään istuntoon ja tunnistustapahtumaan liittyvät tiedot.

Aikaleima

Selitys

Tunnistusvastauksen luontihetki.

Sijainti

saml2p:Response-elementin IssueInstant-attribuutti.

Muoto

Merkkijono, 20 merkkiä.

W3C XML Schema -määrityksen DateTime-tietotyyppi, joka on muotoa ”YYYY-MM-DDThh:mm:ss”.

UTC-muodossa, ilman aikavyöhykettä.

Pakollisuus

Pakollinen.

Malli

<saml2p:Response …
IssueInstant=”2015-09-28T16:27:36Z”

Taulukko 9. Aikaleima, tunnistusvastaus.

Tapahtumatunnus

Selitys

Asiointipalvelun tunnistuskutsussa lähettämä tapahtumatunnus, joka mahdollistaa asiointipalvelun tilatiedon säilyttämisen koko tunnistautumistapahtuman läpi.

Tapahtumatunnuksen perusteella asiointipalvelu voi esimerkiksi ohjata loppukäyttäjän tunnistautumisen jälkeen oikealle sivulle.

Tapahtumatunnus ei sisälly SAML-viestiin, vaan se välitetään HTTP-komennon parametrina.

Sijainti

RelayState-parametri.

Muoto

Maksimissaan 80 tavua.

Pakollisuus

Ei pakollinen.

Malli

<form method="post" action=”….
<input type="hidden" name="RelayState" value="token" />

Taulukko 10. Tapahtumatunnus, tunnistusvastaus.

Istunnon tunniste

Selitys

Tunnistus-palvelun luoma kertakirjautumisistunnon tunniste.

saml2:NameID-elementissä on attribuutit NameQualifier (Tunnistus-palvelun tunniste) ja SPNameQualifier (asiointipalvelun tunniste) sekä Format (tunnisteen muodon määritys), jotka on tunnisteen lisäksi sisällytettävä uloskirjauspyyntöön muuttamattomina.

Sijainti

saml2:NameID-elementti.

Muoto

Merkkijono, maksimissaan 1 024 merkkiä.

Pakollisuus

Pakollinen.

Malli

<saml2p:Response …
<saml2:Assertion …
<saml2:Subject>
<saml2:NameID
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
NameQualifier="https://testi.apro.tunnistus.fi/idp1"
SPNameQualifier="https://kalastus.kunta.fi/lupa-asiat">
AAd ... dsUA==
</saml2:NameID>

Taulukko 11. Istunnon tunniste, tunnistusvastaus.

Kertakirjautumisistunnon indeksitieto

Selitys

Kertakirjautumisistunnon indeksitieto.

Sisällytettävä uloskirjauspyyntöön muuttamattomina.

Sijainti

SessionIndex -attribuutin arvo.

Muoto

Merkkijono.

Pakollisuus

Pakollinen.

Malli

<saml2:AuthnStatement AuthnInstant="2016-05-13T11:42:42.573Z" SessionIndex="_2c41c54f41a76ec6aaeede9a9bc46a24">
<saml2:SubjectLocality Address="112.111.110.109" />
<saml2:AuthnContext>
<saml2:AuthnContextClassRef>http://ftn.ficora.fi/2017/loa2</saml2:AuthnContextClassRef>
</saml2:AuthnContext>
</saml2:AuthnStatement>

Taulukko 12. Kertakirjautumisistunnon indeksitieto

Tunnistustapahtuman vahvuus

Selitys

Loppukäyttäjän valitsema tunnistusväline.

Sijainti

saml2:AuthnStatement-elementin saml2:AuthnContext-elementin saml2:AuthnContextClassRef-elementti.

Muoto

Arvona palautetaan URN:OID-muotoinen tunniste.

  • http://ftn.ficora.fi/2017/loa3 - korkea varmuustaso
  • http://eidas.europa.eu/LoA/high - korkea varmuustaso (eIDAS)
  • http://ftn.ficora.fi/2017/loa2 - korotettu varmuustaso
  • http://eidas.europa.eu/LoA/substantial - korotettu varmuustaso (eIDAS)
  • urn:oid:1.2.246.517.3002.110.7 - Finnish Authenticator
  • urn:oid:1.2.246.517.3002.110.999 - testitunnistusväline, joka käytössä ainoastaan testiympäristössä

Pakollisuus

Pakollinen.

Malli

<saml2p:Response …
<saml2:Assertion …
<saml2:AuthnStatement …
<saml2:AuthnContext>
<saml2:AuthnContextClassRef>
http://ftn.ficora.fi/2017/loa2
</saml2:AuthnContextClassRef>

Taulukko 13. Tunnistustapahtuman vahvuus, tunnistusvastaus.

Paluustatus

Selitys

Asiointipalvelulle välitetään tieto siitä, miten tunnistustapahtuma onnistui.

Sijainti

saml2p:Response-elementin saml2p:Status-elementti.

Muoto


Merkkijono.

Ylemmän tason tilakoodit:

Success = Tunnistus onnistui
Requester = Virhe tunnistuspyynnössä
Responder = Tunnistuspyynnön käsittely epäonnistui
VersionMismatch = Tunnistuspyynnössä väärä versio.
Täydentäviä tilakoodeja:

AuthnFailed = Tunnistus epäonnistui
RequestDenied = Tunnistusväline hylkäsi tunnistuksen.
Status-elementissä voi olla mukana StatusMessage-elementti, joka sisältää tarkemman tiedon virhetilanteesta.

Pakollisuus

Pakollinen.

Malli

<saml2p:Response …
<saml2p:Status>
<saml2p:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</saml2p:Status>

Taulukko 14. Paluustatus, tunnistusvastaus.

VTJ-haun onnistuminen

Selitys

Asiointipalvelulle välitetään tieto siitä, onnistuiko VTJ-haku.

Sijainti

saml2:AttributeStatement:in attribuutin urn:oid:1.2.246.517.3002.111.2 -arvo.

Muoto

Merkkijono

true = VTJ-haku onnistui
false = VTJ-haku epäonnistui

Pakollisuus

Pakollinen.

Malli

<saml2:Attribute Name="urn:oid:1.2.246.517.3002.111.2" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">

<saml2:AttributeValue>true</saml2:AttributeValue>

</saml2:Attribute>

Taulukko 15. VTJ-haun onnistuminen.

Uloskirjautuminen

Kuvassa 3 on esitetty kertauloskirjaukseen liittyvät SAML-viestit asiointipalveluiden ja Tunnistus-palvelun välillä, kun loppukäyttäjä on ollut kirjautuneena Tunnistus-palveluun liitettyihin asiointipalveluihin. Viestit kulkevat loppukäyttäjän selaimen välityksellä. Uloskirjauspyynnön (<LogoutRequest>) voi lähettää joko asiointipalvelu Tunnistus-palvelulle tai päinvastoin. Sama pätee myös uloskirjausvastaukseen (<LogoutResponse>).

Kuva 3. Uloskirjausprosessissa asiointipalveluiden ja Tunnistus-palvelun välillä liikkuvat SAML-viestit.

Uloskirjauspyyntö

Asiointipalvelu voi lähettää uloskirjauspyynnön Tunnistus-palvelulle tai päinvastoin (ks. kuva 3). Viestin rakenne on molemmissa tilanteissa samanlainen.

Asiointipalvelun on päätettävä paikallinen selainistunto ennen uloskirjauspyynnön lähettämistä Tunnistus-palvelulle.

Tuetut sidokset ovat HTTP POST ja HTTP REDIRECT.

Asiointipalvelun tunnus

Selitys

Asiointipalvelun tunnus. Viittaa asiointipalvelun perustiedoissa (metadata) määriteltyyn EntityID-attribuuttiin.

Tunnuksen perusteella Tunnistus-palvelu löytää asiointipalvelun määritykset, mukaan lukien varmenteen, jonka avulla viestin alkuperä voidaan varmistaa.

Sijainti

saml2p:LogoutRequest -elementin saml2:issuer-elementti.

Muoto

Merkkijono, pituus maksimissaan 1024 merkkiä.

URL-muoto.

Pakollisuus

Pakollinen.

Malli

<saml2p:LogoutRequest …
<saml2:Issuer>https://kalastus.kunta.fi/lupa-asiat </saml2:Issuer>

Taulukko 16. Asiointipalvelun tunnus, uloskirjautuminen.

Aikaleima

Selitys

Uloskirjauspyynnön luontihetki.

Sijainti

saml2p:LogoutRequest-elementin IssueInstant-attribuutti.

Muoto

Merkkijono, 20 merkkiä.

W3C XML Schema -määrityksen DateTime-tietotyyppi, joka on muotoa ”YYYY-MM-DDThh:mm:ss”.

UTC-muodossa, ilman aikavyöhykettä.

Pakollisuus

Pakollinen.

Malli

<saml2p:LogoutRequest … IssueInstant=”2015-09-28T16:27:36Z”…>

Taulukko 17. Aikaleima, uloskirjautuminen.

Istunnon tunniste

Selitys


Tunnistus-palvelun luoma kertakirjautumisistunnon tunniste, jonka asiointipalvelu on saanut tunnistusvastauksessa.

Tunnisteen arvon lisäksi saml2:NameID-elementissä on oltava tunnistusvastauksessa saadut attribuutit (NameQualifier, SPNameQualifier ja Format) muuttumattomina.

Sijainti

saml2:NameID-elementti.

Muoto

Merkkijono.

Pakollisuus

Pakollinen.

Malli

<saml2p:LogoutRequest …
<saml2:NameID
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
NameQualifier="https://testi.apro.tunnistus.fi/idp1"
SPNameQualifier="https://kalastus.kunta.fi/lupa-asiat">
AAd ... dsUA==
</saml2:NameID>

Taulukko 18. Istunnon tunniste.

Istunnon indeksitieto

Selitys

Kertakirjautumisen indeksitieto, jonka asiointipalvelu on saanut tunnistusvastauksessa

Sijainti

<samlp:LogoutRequest>

Muoto

Merkkijono.

Pakollisuus

Pakollinen.

Malli

<saml2p:LogoutRequest …
<saml2p:SessionIndex>_2c41c54f41a76ec6aaeede9a9bc46a24</saml2p:SessionIndex>…

Taulukko 19. Istunnon indeksitieto.


Tapahtumatunnus

Selitys


Asiointipalvelun määrittelemä tapahtumatunnus, joka mahdollistaa asiointipalvelun tilatiedon säilyttämisen koko uloskirjaustapahtuman läpi.

Voidaan hyödyntää esimerkiksi siten, että asiointipalvelu voi tiedon perusteella ohjata loppukäyttäjän uloskirjautumisen jälkeen määrittelemälleen sivulle.

Tapahtumatunnus ei sisälly SAML-viestiin, vaan se välitetään HTTP-protokollan mukana.

Sijainti

RelayState-parametri.

Muoto

Maksimissaan 80 tavua.

Pakollisuus

Ei pakollinen.

Malli

<form method="post" action=”….
<input type="hidden" name="RelayState" value="token" />

Taulukko 20. Tapahtumatunnus, uloskirjautuminen.

Uloskirjausvastaus

Asiointipalvelu voi lähettää uloskirjausvastauksen Tunnistus-palvelulle tai päinvastoin (ks. kuva 3). Uloskirjausvastauksen rakenne on molemmissa tilanteissa samanlainen.

Jos kertakirjautumisistunto puuttuu esimerkiksi siitä syystä, että tunnistautuminen on tehty eIDAS-tunnistusta käyttäen tai sessio on vanhentunut, uloskirjausvastauksena palautetaan LogoutResponse, jolla on StatusCode "Requester" ja StatusMessage "An error occurred".

Tuetut sidokset (binding) ovat HTTP POST ja HTTP REDIRECT.

Uloskirjausvastaus lähetetään useamman asiointipalvelun SSO/SLO-skenaariossa vasta kun loppukäyttäjä on palannut asiointipalveluun "PALAA PALVELUUN..." linkin painamisen jälkeen.

Aikaleima

Selitys

Uloskirjautumisvastauksen luontihetki.

Sijainti

saml2p:LogoutResponse-elementin IssueInstant-attribuutti.

Muoto


Merkkijono, 20 merkkiä.

W3C XML Schema -määrityksen DateTime-tietotyyppi, joka on muotoa ”YYYY-MM-DDThh:mm:ss”.

UTC-muodossa, ilman aikavyöhykettä.

Pakollisuus

Pakollinen.

Malli

<saml2p:LogoutResponse … IssueInstant=”2015-09-28T16:27:36Z” …

Taulukko 21. Aikaleima, uloskirjausvastaus.

Asiointipalvelun tunnus

Selitys

Asiointipalvelun tunnus. Viittaa asiointipalvelun metadatassa määriteltyyn EntityID-attribuuttiin.

Sijainti

saml2p:LogoutResponse -elementin saml2:issuer-elementti.

Muoto

Merkkijono, pituus maksimissaan 1 024 merkkiä.

URL-muoto.

Pakollisuus

Kyllä.

Malli

<saml2p:LogoutResponse …
<saml2:Issuer>https://kalastus.kunta.fi/lupa-asiat </saml2:Issuer>

Taulukko 22. Asiointipalvelun tunnus, uloskirjausvastaus.

Tapahtumatunnus

Selitys

Asiointipalvelun määrittelemä tapahtumatunnus, joka mahdollistaa asiointipalvelun tilatiedon säilyttämisen koko uloskirjautumistapahtuman läpi.

Voidaan hyödyntää esimerkiksi siten, että asiointipalvelu voi tiedon perusteella ohjata loppukäyttäjän uloskirjautumisen jälkeen määrittelemälleen sivulle.

Tapahtumatunnus ei sisälly SAML-viestiin, vaan se välitetään HTTP-komennon parametrina.

Sijainti

RelayState-parametri.

Muoto

Maksimissaan 80 tavua.

Pakollisuus

Ei pakollinen.

Malli

<form method="post" action=”….
<input type="hidden" name="RelayState" value="token" />

Taulukko 23. Tapahtumatunnus, uloskirjausvastaus.

Paluustatus

Selitys

Asiointipalvelulle välitetään tieto siitä, miten uloskirjautumistapahtuma onnistui.

Sijainti

saml2p:LogoutResponse-elementin saml2p:Status-elementti.

Muoto

Merkkijono.

Ylemmän tason tilakoodit:

  • Success = Uloskirjautuminen onnistui
  • Requester = Uloskirjautumispyynnön käsittely epäonnistui
  • VersionMismatch = Uloskirjautumispyynnössä väärä versio.

Pakollinen

Pakollinen.

Malli

<saml2p:LogoutResponse …
<saml2p:Status>
<saml2p:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</saml2p:Status>

Taulukko 24. Paluustatus, uloskirjausvastaus.

Finnish Authenticator

Finnish Authenticator -palvelun käyttö Suomi.fi-tunnistuksessa vaatii erillisen sopimuksen.

Huomioi, että Finnish Authenticator ei ole vahva tunnistusväline.

Tunnistusvälineellä tunnistetusta henkilöstä välitetään taulukossa 26 esitetyt tiedot.

Etunimi

http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName

Sukunimi

urn:oid:2.5.4.4

Ulkomaisen henkilön tunniste

urn:oid:1.2.246.517.3002.111.17

Syntymäaika

http://eidas.europa.eu/attributes/naturalperson/DateOfBirth

Taulukko 25. Tunnistusvälineellä tunnistetusta henkilöstä välitettävät tiedot.

Finnish Authenticator -sovellus voidaan ottaa käyttöön tunnistusvälineellä: urn:oid:1.2.246.517.3002.110.7.


Päivitetty: 3.3.2025

Oletko tyytyväinen tämän sivun sisältöön?