Taustaa
SAML 2.0 -spesifikaatio määrittelee uloskirjautumisen. Shibboleth 2 toteuttaa uloskirjatumisen vain SP:n osalta. Haka-logout on väliaikaisratkaisu kunnes Shibboleth-ohjelmisto tukee uloskirjautumista. Sen avulla käyttäjä voi kirjautua ulos IdP:stä sekä yhdestä palvelusta, mutta Haka-logout ei ole Single Logout - käyttäjän sessio jää auki muihin Haka-palveluihin, joihin hän on kirjautuneena. Tämän vuoksi käyttäjän pitäisi sulkea aina selain varmistaakseen uloskirjautumisen.Uloskirjautuminen
Kunkin kotiorganisaation tulee toteuttaa määritetty uloskirjautuminen.
-
HTTP Basic Authentication -kirjautuminen ei tarjoa mahdollisuuttaa kirjautua siitä ulos. Käytännössä tämä tarkoittaa, että HTTP Basic Authentication:ia ei voida käyttää Hakassa.
-
Jos kotiorganisaatio käyttää sisäistä kertakirjautumisjärjestelmää (esim. Pubcookie) tulee sen istunto poistaa myös.
Kunkin kotiorganisaation tulee päättää tarjoaako se kertakirjautumista. Kertakirjautuminen voidaan poistaa määrittämällä hyvin lyhyt istunnon voimassaoloaika.
Lisäksi jokaisen palvelun on poistettava käyttäjän istunto palvelustaan (tuhottava Shibboleth-evästeet sekä mahdolliset sovelluksen omat). Jos käyttäjällä on rinnakkaisia istuntoja useissa palvelimissa, säilyy käyttäjä kirjautuneena niihin.
Tekninen toteutus
Hakassa attribuutti urn:mace:funet.fi:haka:logout-url sisältää kotiorganisaation uloskirjautumisosoitteen esimerkiksi urn:mace:funet.fi:haka:logout-url='https://shib-origin.tut.fi/SHIBLOGOUT'
Kotiorganiaation tulee antaa attribuutti palveluille
-
Attribute Release Policy asetukset eivät saa estää sen luovutusta
-
koska osoite on yleensä sama kaikille käyttäjille voidaan se asettaa kiinteästi attribute-resolver.xml -tiedostossa
Käyttäjän uloskirjautuessa palvelusta, palvelun tulee ohjata logout-url -osoitteeseen.
-
osoitteessa, kotiorganisaatio toteuttaa istunnon poistamisen
-
palvelu voi (MAY) lisätä vapaaehtoisen return-URL -argumentin, johon kotiorganisaation voi palauttaa selaimen uloskirjautumisen jälkeen sekä vapaaehtoisen data -argumentin, jonka sisällön palveluja kotiorganisaatio voivat keskenään sopia.
- Esimerkki Shibboleth 2 IdP:n logout-skriptistä. Tämä sopii käytettäväksi Shibboleth 2 IdP:n oman autentikaatiotavan kanssa, käytettäessä esim. Pubcookieta/CAS:ia täytyy myös istunto poistaa näistä järjestelmistä.
Esimerkki
-
Kotiorganisaation täyttää attribuutin urn:mace:funet.fi:haka:logout-url arvolla https://shib-origin.tut.fi/SHIBLOGOUT
-
Käyttäjä painaa uloskirjautumista palvelussa.
-
Palvelu poistaa käyttäjän istunnon palvelussa, sekä Shibboleth että mahdollisen sovelluksen oman.
-
Palvelu ohjaa selaimen osoitteseen: https://shib-origin.tut.fi/SHIBLOGOUT? return=http%3A%2F%2Fwww.service.fi%2F&data=foobar
-
Kotiorganisaation poistaa IdP-palvelimen istunnon, sekä Shibboleth että käytetyn kirjautumisjärjestelmän istunnot.
-
Kotiorganisaatio ohjaa selaimen osoitteeseen http://www.service.fi/