PnX-SI / UsersHub-authentification-module

Module Flask d'authentification de UsersHub
GNU General Public License v3.0
5 stars 13 forks source link

Rester connecté entre les applications GeoNature/Usershub/Taxhub #61

Closed mvergez closed 1 year ago

mvergez commented 1 year ago

Bonjour,

Dans le cadre d'une prestation pour l'Agence Régionale de la Biodiversité en Ile de France, nous avons soulevé le souci de déconnexion automatique lors de l'accès à une des 3 applications après s'être connecté à une autre.

Après analyse cela provient de cette ligne : https://github.com/PnX-SI/UsersHub-authentification-module/blob/0d269c8323e441b13fe8ffd7ca99ec36178c6415/src/pypnusershub/db/tools.py#L116-L123

Est-ce vraiment primordial de garder cette vérification de l'id de l'application ? Sachant qu'on pourrait bypasser cette vérification en changeant l'id directement dans le token jusqu'à trouver le bon :) En retirant cette vérification, je parviens à rester connecté.

Ou alors, il faudrait changer la façon dont est stocké le token pour qu'il soit lié et indépendant de chaque application car j'ai l'impression que chaque application écrase le token de l'autre. Je vais faire quelques recherches là dessus.

TheoLechemia commented 1 year ago

Oui le token d'une autre application est effacé si les deux app sont sur le même domaine (elle partage le même cookie) Je vois pas comment faire pour trouver l'autre "ID" du coup? L'autre solution est de stocker le token dans le header, comme c'est recommandé pour JWT il me semble

camillemonchicourt commented 1 year ago

En fait au départ on pouvait rester connecté sur GN, TH et UH en parallèle car on utilisait l'id_application. Élie a fait du ménage pour ne plus devoir définir les id_applications dans la configuration etc. L'effet de bord est que l'on ne peut plus être connecté à GN, TH et UH en parallèle.

Pour remettre en place cette possibilité, la solution qu'on avait évoqué avec Elie serait de remettre en place le fonctionnement qui existait, mais en utilisant le code_application et non plus l'id_application.

camillemonchicourt commented 1 year ago

Depuis quelques versions, GeoNature et TaxHub ont leur propre token, ce qui fait qu'on fait qu'on peut rester connecté à TH et GN en parallèle lorsqu'ils sont sur le même domaine (et à UH aussi qui garde le token comme avant, différent de ceux de GN et TH).