1. Shibboleth (SAML2 / OIDC)

Last modified by thata@helsinki_fi on 2023/12/19 08:01

HY:n Shibboleth-palvelu (SAML2 ja OpenID Connect-teknologiat) on suositeltavin vaihtoehto WWW-sovellusten autentikointiin. Palvelussa voidaan käyttäjän tunnistamisen lisäksi välittää kirjautuneesta käyttäjästä palvelukohtaisesti palvelussa tarvittavia lisätietoja, kuten nimitiedot, opiskelijanumero tai jopa henkilötunnus. Myös käyttäjien ryhmäteidot voidaan välittää sovellukselle. Shibboleth tarjoaa myös kertakirjautumisen hyödyt. Eli jos jos käyttäjä on jo kirjautunut, tunnusta ja salasanaa ei tarvitse syöttää uudestaan. Tarvittaessa Shibbolethin kautta voidaan myös välittää muiden korkeakoulujen käyttäjien tietoja.

Mikä SAML2?

SAML on avoin standardi, jonka avulla välitetään tunnistukseen (authentication) ja valtuuttamiseen (authorization) liittyvää tietoa osapuolten välillä. Käytännössä sen avulla tarjotaan kertakirjautumispalveluita selainkäyttöisille web-palveluille. Nykyisin käytetään lähinnä 2. verriosta SAML-standardista, jolloin siihen usein viitataan nimellä SAML2.

Osapuolia kirjautumisessa on kaksi:

  • IdP = Identity provider. Taho joka toteuttaa käyttäjän tunnistuksen ja välittää tarvittaessa valtuuttamiseen tarvittavia attribuutteja, esimerkiksi tiedon onko tunnistautunut henkilö opiskelija, henkilökuntaa jne. Helsingin yliopisto toteuttaa IdP:n roolia login.helsinki.fi palvelun kautta.
  • SP = Service provider.  Palvelu joka vastaanottaa ja käyttää IdP:n tarjaamaa tunniste- ja valtuutustietoa. HY:n palveluista esimerkiksi Moodle, WebOodi ja Flamma toimivat näin, samoin noin 40 muuta palvelua.

Palveluiden välillä on luottamussuhde. Välitetyt tiedot allekirjoitetaan ja tarvittaessa myös salataan palveluiden välillä jaettujen varmenteiden avulla.

Shibboleth on yleisimmin käytetty SAML-sovellus, joka tukee sekä IdP:n että SP:n roolia. Shibboleth ja SAML termejä on käytetty jonkun verran ristiin, vaikka Shibboleth on vain yksi sovellus, joka toteuttaa kirjautumista. Lähes kaikki IdP:t käyttävät Shibbolethia.

Mikä OIDC?

OpenID Connect (OIDC) on SAML:n tapaan avoin standardi, joka toimii pitkälle samalla tavoin, eli käyttäjä ohjataan kirjautumaan erilliseen kirjautumispalveluun ja tiedot käyttäjästä välitetään palvelulle, johon kirjauduttiin.

SAML2:sta poiketen OIDC käyttää tokeneita kirjautumiseen. SAML2 on laajalti julkisen- ja akateemisen sektorin käytössä, mutta yksityisellä sektorilla OIDC on yleisemmin tuettu. Käyttäjän kannalta käytettävällä teknologialla ei käytännössä ole eroa.

Miksi käyttää kertakirjautumista, kuten SAMLia tai OIDC:ta?

Hyviä syitä käyttää kertakirjautumista käyttäjän tunnistukseen ja valtuuttamiseen ovat mm:

  • Kertakirjautuminen. Kun käyttäjä kirjautuu yhteen palveluun, ei hänen saman session aikana tarvitse syöttää enää tunnuksia toiseen login.helsinki.fi kirjautumispalvelua käyttävään palveluun. Sessio toimii korkeintaan 10 tuntia, ja vanhenee kolmessa tunnissa, jos käyttäjä ei avaa uusia palveluita.
  • Turvallisuus. Käyttäjän salasana ei koskaan tule SP:n tietoon, vaan kirjautumistapahtuma hoidetaan kokonaan IdP:llä.
  • Tietojen luovutus. IdP voi välittää erinäisiä tietoja käyttäjästä palvelulle, joita voi käyttää valtuutuksen toteamiseen tai esimerkiksi yhteystietoina helpottamaan palvelun käyttöä. Kun käyttäjä kirjautuu ensimmäistä kertaa palveluun, kysytään häneltä lupa tietojen luovuttamiseen palvelulle, mikä osaltaan auttaa GDPR:n mukaisen, tietojen käsittelyn lainmukaisuusperiaatteen toteuttamisessa.
  • Mahdollisuus tarjota kirjautumista myös muille korkeakoulujen käyttäjille federaatioiden kautta. Kansalliseen Haka-federaatioon liitettyyn palveluun voivat kirjautua muiden suomalaisten korkeakoulujen käyttäjät ja kansainvälisessä eduGAIN-federaatiossa on yli 2 500 tutkimus- ja koulutusorganisaatiota maailmanlaajuisesti.

Syitä olla käyttämättä kertakirjautumista käyttäjän tunnistukseen ja valtuuttamiseen:

  • Nämä toimivat käytännössä vain selainpohjaisissa palveluissa, koska käyttäjän kirjautuminen on toteutettava sitä kautta.

Kuinka kertakirjatuumisen (Shibboleth-palvelu) saa käyttöön?

Käyttöönotto

Kun SAML tai OIDC otetaan käyttöön palvelussa, muodostetaan ensin luottamussuhde IdP:n ja SP:n (RP ja OP OIDC:ssa) välille. Tämä tehdään määrittämällä metatiedot IdP:n ja SP.n välillä. Nämä metatiedot sisältävät mm. palveluiden julkiset varmenteet, käytettävät yhteysosoitteet sekä tiedon attribuuteista, joita SP:lle tarvittaessa luovutetaan.

Katso tarkemmat ohjeet Shibbolointiin.

Palveluiden rekisteröinti ja niihin tulevat muutokset tehdään suoraan SP-rekisteriin. Jos teillä on jo palvelu HY:n Shibbolethissa, mutta ei pääsyä siihen edellä mainitun SP-reksiterin kautta, olkaa yhteydessä yllä mainittuihin yhteystietoihin.

Lisätietoja palvelun käyttöönotosta voi pyytää sähköpostilla osoitteesta atk-autentikointi@helsinki.fi.

Muistilista käyttöönottoon

  • Ole ajoissa liikkeellä
    • Kilpailutuksessa toimittajat pystyvät paremmin arvioimaan vaatimuksia ja tarjoamaan parhaat ratkaisut, kun heille jakaa linkin tänne wiki-sivujen tietopakettiin. SAML2 on käytössä useilla julkisilla toimijoilla, yksityisellä puolella käytetään enemmän OIDC-kirjautumista.
    • Konsultoi tarvittaessa Tietotekniikkakeskusta kilpailutuksessa, ottamalla yhteyttä oman yksikkösi tai tiedekuntasi asiakasvastaavaan.
  • Aloita attribuuttien suunnittelu.
    • Muista henkilötietojen käsittelyn minimointi.
    • Lisätietoa attribuuteista löytyy yllä mainituista ohjeista.
  • Tike antaa tapauskohtaisesti ohjeita.
    • Käy toimittajan kanssa ohjeistus ja mahdolliset valmiit moduulit läpi.
    • Parhaiten tuettuna on Shibboleth-sovellus, jonka ohjeita on myös tällä sivustolla. Muita sovelluksia löytää esim. Wikipediasta.
  • Huomioi myös HY:n tietoturvakäytännöt.
    • Palvelun täytyy käyttää HTTPS:ää, jotta se voidaan liittää kertakirjautumiseen.
  • Hallinnolliset vaatimukset.

Käyttäjän kirjautuminen

Switch (Sveitsin federaatio) on luonut erinomaisen demon kirjautumisen vaiheista: https://www.switch.ch/aai/demo/

Lyhyesti vaiheet ovat seuraavat:

  1. Käyttäjä menee SP:n kirjautumissivulle.
  2. Kirjautumissivu ohjaa käyttäjän selaimen siirtymään IdP:lle.
    1. Jos palvelu on kytketty johonkin federaatioon, ohjataan käyttäjä ensin valitsemaan haluttu IdP, esimerkiksi Helsingin yliopisto.
  3. IdP kysyy käyttäjältä tämän käyttäjätunnuksen ja salasanan.
  4. Jos käyttäjä kirjautuu ensimmäistä kertaa kyseiselle SP:lle, IdP kysyy häneltä luvan tietojen luovuttamiseen SP:lle.
  5. IdP pyytää käyttäjän selainta välittämään vastausviestin SP:lle. Tämä viesti sisältää käyttäjän tunnisteen sekä mahdollisesti hänestä luovutettavat tiedot. Nämä tiedot yleensä salataan SP:n julkisella avaimella.

Federaatiot (luottamusverkot)

Helsingin yliopiston paikallisen kirjautumisen (ns. sisäfederaatio) lisäksi on mahdollista sallia myös muiden kotimaisten ja ulkomaisten korkeakoulujen käyttäjien kirjautuminen sovellukseen, liittämällä palvelu laajempaan luottamusverkkoon.

Kirjautuminen toimii samalla tavoin kuin sisäfederaatiossa, mutta aluksi käyttäjä ohjataan valitsemaan haluttu IdP listalta. Tämän jälkeen kirjautuminen ohjataan IdP:n kirjautumispalvelimelle antamaan käyttäjätunnus ja salasana, HY:n käyttäjien tapauksessa kyseessä on login.helsinki.fi-palvelu.

  • Haka on Suomen korkeakoulujen ja tutkimuslaitosten luottamusverkosto, jonka jäseninä ovat lähes kaikki suomalaiset korkeakoulut.
  • eduGAIN on kansainvälinen luottamusverkosto, jonka jäseninä on yli 50 paikallista luottamusverkostoa, mahdollistaen kirjautumisen yli 2500 korkeakoulun ja tutkimuslaitoksen tunnuksella. eduGAINiin liittyvät palvelut pystyvät halutessa rajaamaan organisaatioita, joiden tunnuksilla sovellukseen on mahdolista kirjautua.

Samalla tavoin on Helsingin yliopiston käyttäjien mahdollista kirjautua Hakaan ja eduGAINiin liitettyihin palveluihin.

Koska luottamusverkostot perustuvat yhteisesti sovittujen käytänteiden noudattamiseen, on niihin liittyville palveluille olemassa määritykset vähimmäistiedoista ja käytännöistä. Kuitenkin eri kansallisilla federaatioilla käytännöt vaihtelevat, joten käyttöön liittyy myös rajoituksia (kts. alla).

Huom. Hakassa on määritetty selkeät vaatimukset käyttäjän ensitunnistuksen tasolle sekä esim. eduPersonAffiliation arvoille. eduGAINin puolella nämä paikallisten luottamusverkostojen ja yksittäisten identiteetintarjoajien ohjeistuksen mukaan, eivätkä ne siten ole vastaavalla tavalla luotettavia.

Rajoitukset

Hakaan liitettyyn palveluun voi kirjautua kaikkien Hakan jäsenten tunnuksilla. Palvelu voi itse rajoittaa käyttäjiä välitettyjen attribuuttien, esim. käyttäjän kotiorganisaation perusteella.

eduGAINin osalta valtaosa IdP:stä ja SP:stä ei muodosta luottamussuhdetta välilleen automaattisesti, vaan se täytyy erikseen määrittää. Helsingin yliopiston käyttäjät eivät voi kirjautua kaikkiin eduGAINiin liittyneisiin palveluihin, koska joko HY ei ole sallinut tietojen luovutusta palveluun tai palvelu ei ole sallinut HY:n käyttäjien kirjautumista. Sama pätee myös toisin päin, eli kaikkien IdP:den tunnuksilla ei voi kirjautua HY:n eduGAINiin liitettyihin palveluihin.

Lähtökohtaisesti Helsingin yliopisto sallii kirjautumiset sellaisiin palveluihin, jotka ovat sitoutuneet GÉANT-tietosuojakäytäntöön. Tämä on tietosuojadirektiivistä johdettu toimintakäytäntö SP:lle, joka sijaitsee EU/ETA-alueella tai Euroopan komission turvalliseksi katsomassa maassa.

Lisätietoja liittymisestä eduGAINiin ja sen rajoitteista löytyy Hakan wikistä.