Altinn / altinn-studio

Next generation open source Altinn platform and applications.
https://docs.altinn.studio
BSD 3-Clause "New" or "Revised" License
115 stars 70 forks source link

Altinn should support OIDC post_logout_redirect_uri parameter #8549

Open etsikt opened 2 years ago

etsikt commented 2 years ago

What needs to be solved?

  1. The user has logged in with custom OIDC, f.ex. Feide and this app: https://udir.apps.altinn.no/udir/invitasjon-vfkl
  2. The user closes the app and is taken to the Altinn inbox.
  3. The user decides to logout.
  4. The user is taken to https://altinn.no/
  5. On that page, the user cannot select to login with OIDC (Feide).

How do you want it solved?

Altinn studio should support the post_logout_redirect_uri as described by Feide:

https://docs.feide.no/service_providers/manage/openid_connect/redir_etter_logout.html

and specified in the OpenID Connect RP-Initiated Logout 1.0 - draft 02 specification reference by the Feide documentation:

https://openid.net/specs/openid-connect-rpinitiated-1_0.html#RPLogout

When logging out, Altinn should check if the OIDC service has specified the post_logout_redirect_uri parameter and forward the user there, such that we can give the user the possibility of logging in with OIDC (Feide) again.

pckofstad commented 2 years ago

Kommentarer etter møtet mellom Altinn utviklere og Elevundersøkelse-prosjektet i Udir

Elevundersøkelsen bygges som en generell undersøkelses plattform som kan brukes til ulike formål, også med andre utvalg enn skoler som respondenter slik som elevundersøkelsen benytter.

Elevundersøkelsen har planlagt 3 ulike måter å logge inn i sin Altinn app på.

I skrivende stund er linken mellom Altinn og Utdanningsdirektoratet en enkelt påloggings klient. Det samme gjelder (så vidt vi er kjent) også linken Altinn har mot MinID. Ettersom det er identity providere som styrer hvor man sendes etter at man er logget ut av en sesjon, så er det i praksis hver enkelt identity provider som er ansvarlig for hvor man havner. Dette betyr da MinId og Uidp. Ofte kan man tilpasse hvor man skal sendes basert på hvilken påloggings klient man bruker, man har altså noen få utvalgte «sign-out-redirect-urls».

Om hver app skal styre hvor man sendes når man trigger en "sign-out" for en bruker, så ville normen vært å ha en egen pålogging's klient for hver app, for hver identity provider (antall apper * identity providere per app). For å oppnå dette på en forvaltningsmessig bærekraftig måte, må denne registreringen automatiseres i større grad enn den er i dag. Det er god praksis at sider man sendes til etter «sign-out» regnes som "trygt" å videresendes til. Hensikten er blant annet det ikke forvirrer brukeren, men brukeren er helt trygg på at man er logget ut.

Det er kanskje mulig å lage noen "fallbacks" eller "generelle løsninger" for dette, men det vil innebære å gå litt utenfor normen og lage et eget konsept for redirect. Det vil da også være anbefalt å gjøre en vurdering av hvordan vi klassifiserer noen sider som "trygge landings-sider etter sign-out", og andre som ikke trygge nok.

Oppsummert så er det flere koordineringer, tekniske og prinsipielle arkitektur valg som må tas før vi graver oss dypere ned i dette. Fra «Prosjektet Elevundersøkelsen» sitt synspunkt så er det andre ting som bør prioriteres høyere for elevundersøkelses teamet når vi ser scopet av denne endringen. Om vi skulle finne andre tekniske løsninger som er «enklere» eller vi kommer mer ajour med det vi nå har i backlog kan denne prioriteringen revurderes.

nkylstad commented 8 months ago

@TheTechArch any updates on this issue? Can it be moved to a different repo?