Project

General

Profile

Support #33232

équivalent "SessionNotOnOrAfter" en oidc ?

Added by Frédéric Péters about 1 year ago. Updated about 1 year ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
19 May 2019
Due date:
% Done:

0%

Patch proposed:
No
Planning:
No
Demande du club utilisateur:
No

Description

En SAML on cale l'expiration d'une session d'un SP sur ce qu'authentic fournit dans <SessionNotOnOrAfter>, des pistes pour obtenir ce comportement avec oidc ?


Related issues

Related to Authentic 2 - Development #33241: calculer l'attribut exp de l'id_token comme le sessionNotOnOrAfter de SAML Nouveau 19 May 2019
Related to Authentic 2 - Development #33240: poser un cookie browser state Nouveau 19 May 2019
Related to Authentic 2 - Support #33242: implémenter la section « 4. Session Status Change Notification » de la spécification OpenIDConnect Session 1.0 Nouveau 19 May 2019
Related to Authentic 2 - Support #33243: implémenter un équivalent SAML à la vue "check_session_iframe" d'OIDC Nouveau 19 May 2019

History

#1 Updated by Paul Marillonnet about 1 year ago

Outre les techniques à base d'iframe pour l'échange d'informations relatives à l'état de la session entre le fournisseur OIDC et le RP, le brouillon de doc OIDC sur la gestion des sessions précise que "_An ID Token typically comes with an expiration date. The RP MAY rely on it to expire the RP session_1".
Ce que tu décris dans le ticket semble pouvoir être géré à l'aide du champ de timestamp d'expiration sur l'ID token, mais, contrairement aux iframes, ne couvrira pas le cas où l'usager termine prématurément la session côté fournisseur OIDC.

1 Sections 4 ; 4.1 et 4.2 de https://openid.net/specs/openid-connect-session-1_0.html#ChangeNotification

#2 Updated by Benjamin Dauvergne about 1 year ago

  • Demande du club utilisateur set to No
  • Project changed from Authentic 2 to Publik

De mon coté je serai plutôt pour implémenter la gestion des sessions via iframe, et propager cette technique à SAML, c'est beaucoup plus sécurisant.

Je déplace ce ticket sur Publik parce qu'il faudra plusieurs tickets d'implémentation :
  • un pour gérer finement l'attribut exp des id_token, pour l'instant c'est géré par ce code dans src/authentic2_idp_oidc/views.py :
    def idtoken_duration(client):
        if client.idtoken_duration:
            return client.idtoken_duration
        return datetime.timedelta(seconds=app_settings.IDTOKEN_DURATION)
    ...
        start = now()
    ...
                'exp': timestamp_from_datetime(start + idtoken_duration(client)),
    
  • une autre pour proposer l'iframe de gestion des sessions OIDC
  • un dernier pour inventer une implémentation équivalente avec OIDC

#3 Updated by Benjamin Dauvergne about 1 year ago

  • Related to Development #33241: calculer l'attribut exp de l'id_token comme le sessionNotOnOrAfter de SAML added

#4 Updated by Benjamin Dauvergne about 1 year ago

#5 Updated by Benjamin Dauvergne about 1 year ago

  • Related to Support #33242: implémenter la section « 4. Session Status Change Notification » de la spécification OpenIDConnect Session 1.0 added

#6 Updated by Benjamin Dauvergne about 1 year ago

  • Related to Support #33243: implémenter un équivalent SAML à la vue "check_session_iframe" d'OIDC added

Also available in: Atom PDF