SAML2:ssa istuntojen pituudet määräytyvät sekä IdP:ssa että SP:ssa. Käyttäjän kokema toiminta muodostuu näiden yhteisestä kokonaisuudesta vaikka niitä ei erityisesti toisiinsa synkronoida.

IdP:n asetukset

Perusasetukset asetetaan conf/idp.properties -tiedostossa. 

Authentication
# Inactivity timeout
idp.session.timeout = PT8H
 
# Default lifetime and timeout of various authentication methods
idp.authn.defaultLifetime = PT8H
idp.authn.defaultTimeout = PT60M

IdP tallentaa käyttäjän istunnon esimerkissä kahdeksan tunnin ajaksi (idp.session.timeout = PT8H). Arvon tulee vähintään yhtä pitkä kuin idp.authn.defaultLifetime.

Esimerkissä on asetettu käyttäjän kertakirjautumisen kestoksi kahdeksan tuntia (idp.authn.defaultLifetime = PT8H). Tämä kertakirjautuminen toimii 8 tunnin ajan ensimmäisestä kirjautumisesta, jos käyttäjä on kerran tunnissa aktiivinen IdP:ssa (idp.authn.defaultTimeout = PT60M). Mikäli käyttäjä ei tuon 60 minuutin sisällä käy IdP:ssa, kertakirjautuminen vanhenee ja käyttäjältä vaaditaan uusi tunnistus seuraavalla kerralla. Eli käyttäjä voi kahdeksan tunnin ajan kertakirjautua IdP:ssa kunhan kukin uusi kirjautuminen tapahtuu maksimissaan tunnin välein. 

Esimerkissä kaikilla tunnistusvälineillä pätevät samat ajat. Jos halutaan tunnistusvälinekohtaisesti erilaisia aikoja, ne voidaan konfiguroida conf/authn/general-authn.xml -tiedostossa. Esimerkki https://wiki.shibboleth.net/confluence/display/IDP30/SessionConfiguration#SessionConfiguration-AdvancedSecurityPolicyExample

 

Logout
# Track information about SPs logged into
idp.session.trackSPSessions = true
 
# Length of time to track SP sessions
idp.session.defaultSPlifetime = PT8H
 
# Extra time to store sessions for logout
idp.session.slop = P1D 

Jotta IdP tietää mihin kaikkiin SP:hin käyttäjä on kirjautunut, on asetettava päälle SP-istuntojen seuranta (idp.session.trackSPSessions = true). Tällöin IdP osaa lähettää käyttäjän käyttämiin SP:hin uloskirjautumispyynnön. Lisäksi on kerrottava kuinka kauan IdP säilyttää tietoa käyttäjän kirjautumista eri SP:lle (idp.session.defaultSPlifetime = PT8H), jotta SP:lle osataan lähettää uloskirjautumisvastauksia ja -pyyntöjä. Lisäksi logoutia varten voidaan asettaa vielä lisäaikaa (idp.session.slop = P1D) mikä lasketaan alkavan defaultSPlifetimen päälle. 

IdP voi asettaa AuthnStatement elementissä SessionNonOnOrAfter -attribuutilla SP:n luoman istunnon keston. Tämän tulisi määrittää aika, jolloin SP voi logout-pyyntöjä lähettää. Käytännössä kaikki SP:t eivät kuitenkaan kunnioita asetusta. Tällöin IdP ei voi tietää SP:den istuntojen kestoja ja joudutaan tekemään paras arvio niistä ja IdP:n käyttäjien tarpeista. Istuntojen säilyttämisen haittapuolena on resurssien kulutus, joten määräämättömän pitkäksi aikaa istuntoja ei kannata tallentaa.