Logout
Introductie
Vanaf Access Manager 5 is het mogelijk om via OpenID Connect uit te kunnen loggen. Let op, deze versie is momenteel alleen beschikbaar in de acceptatie omgeving (login.acc.uu.nl).
Op deze en deze pagina’s vind je meer informatie over de gebruikte specificaties. Deze specificaties zijn leidend, de tekst hieronder geldt als een versimpelde conceptuele uitleg. Deze tekst moet niet gebruikt worden als leidraad voor een implementatie. Daarvoor verwijzen we naar de eerder genoemde specificaties.
Beknopte uitleg
Net zoals bij SAML2.0 Single Logout is het met OpenID Connect mogelijk om vanuit een Relying Party (RP) en vanuit een OpenID Provider (OP) uit te loggen. De specificatie kent dus twee verschillende implementaties.
Voor het gemak beschrijven we deze implementaties als Relying Party initiated Logout en OpenID Provider initiated Logout en noemen we de OpenID Provider (OP) een Identity Provider (IdP).
Relying Party initiated Logout (specificatie: OpenID Connect RP-Initiated Logout 1.0)
- De browser stuurt een uitlog verzoek naar de Relying Party.
- De Relying Party stuurt de browser van de gebruiker door naar de uitlog pagina van de Identity Provider.
- De Identity Provider beëindigd de gebruikerssessie en stuurt het uitlog verzoeken naar andere Relying Party’s
(OIDC)en leidt de browser optioneel door naar de uitlog pagina van de Relying Party.
OpenID Provider initiated Logout (specificatie: OpenID Connect Front-Channel Logout 1.0)
- De browser stuurt het uitlog verzoek naar de Identity Provider.
- De Identity Provider toont een uitlog pagina met één of meerdere <iframe> elementen met de logout URL’s van de Relying Party’s waarmee de eindgebruiker een sessie heeft.
- De browser roept alle <iframe> elementen aan en initieert per Relying Party één uitlog verzoek.
- De Relying Party ontvangt het uitlog verzoek en beëindigen de sessie met de gebruiker.
In tegenstelling tot SAML2.0 Single Logout (m.u.v. een asynchrone logout) is er (bij bovengenoemde implementaties) geen garantie dat de sessie bij de Relying Party beëindigd is.
Implementatie
Een aantal factoren waar een beheerder en/of ontwikkelaar van een Relying Party rekening mee moet houden zijn:
- Het gebruik van security headers t.b.v. <iframe> elementen zoals (maar niet uitsluitend): X-Frame-Options, Content-Security-Policy, etc. op de uitlog pagina (logout_redirect_uri).
- Het verschil tussen een logout_redirect_uri en post_logout_redirect_uri
Testen
Het Identity Provider /.well-known/openid-configuration endpoint adverteert ondersteuning voor onderstaande instellingen. Dit houdt in dat als jouw applicatie deze instellingen automatisch inleest er mogelijk onbedoeld gebruik gemaakt wordt van de mogelijkheid om uit te kunnen loggen. Om een correcte werking van de OpenID Connect implementatie te garanderen doen wij een dringend verzoek om dit te controleren.
Via een TOPdesk melding kan verzocht worden om jouw geregistreerde applicatie op de Identity Provider te voorzien van tenminste een logout_redirect_uri en optioneel een post_logout_redirect_uri.
Onderstaande elementen zijn t.o.v. de productie omgeving toegevoegd aan het /.well-known/openid-configuration endpoint:
- end_session_endpoint
- frontchannel_logout_session_supported: true
- frontchannel_logout_supported: true