Projet

Général

Profil

Development #48889

idp_oidc : le setting utilisé pour la durée des access token n'est pas le bon

Ajouté par Benjamin Dauvergne il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
26 novembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

C'est IDTOKEN_DURATION qui est utilisé au lieu d'ACCESS_TOKEN_DURATION, ça fait que par défaut ils ont une durée de vie de 30 secondes, c'est un poil court. Je pense que le mieux c'est de ne pas en mettre que ce soit lié à la session utilisateur par défaut.


Fichiers

Révisions associées

Révision 1687d1a7 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 3 ans

idp_oidc: make access_token validity depends on expiration or session existence (#48889)

Historique

#2

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Assigné à mis à Benjamin Dauvergne
#4

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Le code de calcul de la validité d'un access_token était mauvais pour la session, j'ai factorisé avec celui d'OIDCCode (absence de session.load() pour valider que la session_key existe).

L'attribut OIDCAccessToken.expired peut désormais être NULL rendant l'access_token uniquement dépendant de la session utilisateur, c'est désormais le fonctionnement par défaut pour un token généré avec l'authorization code flow; ça reste débrayable si on pose une valeur de durée de jeton d'accès dans OIDCClient.access_token_duration.

Pour les jetons obtenus via credentials grant c'est soit la valeur par défaut, 8h soit la valeur posée au niveau de OIDCClient.access_token_duration.

#6

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

En fait j'avais déjà fait cette correction sur le chargement des sessions dans #47900, donc j'ai rebasé dessus.

#7

Mis à jour par Paul Marillonnet il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée

Quitte à faire une modif sur le modèle, j’en aurais peut-être profité pour renommer les attributs created et expired en respectivement created_on et expires_on, pour qu'on arrête de croire que c'est des booléens, je ne sais pas, je te laisse décider.
À part ça, c'est ok.

#8

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Paul Marillonnet a écrit :

Quitte à faire une modif sur le modèle, j’en aurais peut-être profité pour renommer les attributs created et expired en respectivement created_on et expires_on, pour qu'on arrête de croire que c'est des booléens, je ne sais pas, je te laisse décider.
À part ça, c'est ok.

C'est une convention dans a2 maintenant, j'ai des created/modified partout.

#9

Mis à jour par Paul Marillonnet il y a plus de 3 ans

Ah oui ok je vois ça, tant pis, pas grave.

#10

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 1687d1a7a460598e49eafaf16469b5596504133b
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Nov 27 08:07:49 2020 +0100

    idp_oidc: make access_token validity depends on expiration or session existence (#48889)
#11

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF