https://dev.entrouvert.org/https://dev.entrouvert.org/favicon.ico?15861920342022-07-06T17:19:11ZRedmine Entr’ouvertw.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=3925782022-07-06T17:19:11ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/67446">0003-tests-use-cookie-name-in-get_session-app-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/67446/0003-tests-use-cookie-name-in-get_session-app-67090.patch">0003-tests-use-cookie-name-in-get_session-app-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/67447">0001-misc-retry-passive-sso-when-session-expire-and-logou.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/67447/0001-misc-retry-passive-sso-when-session-expire-and-logou.patch">0001-misc-retry-passive-sso-when-session-expire-and-logou.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/67448">0002-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/67448/0002-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch">0002-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch</a> ajouté</li><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>Solution proposée</i></li><li><strong>Patch proposed</strong> changé de <i>Non</i> à <i>Oui</i></li></ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=3925842022-07-06T20:11:03ZFrédéric Pétersfpeters@entrouvert.com
<ul></ul><p>Les tickets cités manquent de contexte, offrent juste une explication technique de ce que font les patchs, c'est pour répondre à quel problème ?</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=3925862022-07-06T20:48:24ZBenjamin Dauvergne
<ul></ul><p>Frédéric Péters a écrit :</p>
<blockquote>
<p>Les tickets cités manquent de contexte, offrent juste une explication technique de ce que font les patchs, c'est pour répondre à quel problème ?</p>
</blockquote>
<p>Deux problèmes différents :<br />1. se trouver sur w.c.s. non connecté alors qu'une session existe sur authentic (ça arrive si la session coté w.c.s. expire avant celle d'authentic, ce qui est normalement garanti même), dans ce cas le cookie PASSIVE_TRIED_COOKIE était toujours présent empêchant de relancer un SSO passif (ce qui rallonge la session coté IdP, etc...),<br />2. se trouver connecté sur w.c.s avec un utilisateur différent de celui avec lequel on est connecté sur authentic (le SLO a foiré, le cookie sur authentic a expiré avant celui de w.c.s. pour une raison x ou y) ou alors qu'on est plus connecté sur authentic.</p>
<p>Ça corrige les deux problèmes, le code est quasi identique à celui du middleware qui fait ça dans django-melon.</p>
<p>Ce sont des choses remontés par des tickets GLC lors des tests de GLCPRO (ça concernait surtout combo mais le problème est présent sur w.c.s. aussi).</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4155382022-10-17T14:34:01ZBenjamin Dauvergne
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-default closed" href="/issues/66747">Development #66747</a>: middleware: utiliser la valeur du cookie MELLON_OPENED_SESSION comme référence à la session globale en cours</i> ajouté</li></ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4155462022-10-17T14:36:21ZBenjamin Dauvergne
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-default closed" href="/issues/67084">Development #67084</a>: middleware: retiré MELLON_PASSIVE_TRIED si on est connecté</i> ajouté</li></ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4155472022-10-17T14:37:11ZBenjamin Dauvergne
<ul></ul><p>Pour référence le ticket #65431 parle d'une session ouverte sur le portail alors qu'il n'y en a plus sur authentic, mais le même comportement était observé sur w.c.s.</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4292182022-12-12T13:43:24ZBenjamin Dauvergne
<ul></ul><p>Rebasé.</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4305892022-12-15T16:41:40ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/73106">0005-test-modify-test-to-test-on-a-real-form-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73106/0005-test-modify-test-to-test-on-a-real-form-67090.patch">0005-test-modify-test-to-test-on-a-real-form-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73107">0004-tests-use-cookie-name-in-get_session-app-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73107/0004-tests-use-cookie-name-in-get_session-app-67090.patch">0004-tests-use-cookie-name-in-get_session-app-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73108">0003-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73108/0003-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch">0003-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73109">0001-misc-replace-deprecated-distutils-features-by-setupt.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73109/0001-misc-replace-deprecated-distutils-features-by-setupt.patch">0001-misc-replace-deprecated-distutils-features-by-setupt.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73110">0002-misc-retry-passive-sso-when-session-expire-and-logou.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73110/0002-misc-retry-passive-sso-when-session-expire-and-logou.patch">0002-misc-retry-passive-sso-when-session-expire-and-logou.patch</a> ajouté</li></ul><p>J'ai intégré le test de <a class="issue tracker-2 status-6 priority-4 priority-default closed" title="Development: Le SSO passif ne fonctionne pas sur les chemins de formulaire (/form_slug/ ou /category_slug/form... (Rejeté)" href="https://dev.entrouvert.org/issues/72514">#72514</a> pour montrer qu'en fait ça fait fonctionner le SSO passif qui ne marchait juste plus sur w.c.s.</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4305912022-12-15T16:42:24ZBenjamin Dauvergne
<ul><li><strong>Tracker</strong> changé de <i>Development</i> à <i>Bug</i></li><li><strong>Description</strong> mis à jour (<a title="Voir les différences" href="/journals/430591/diff?detail_id=377590">diff</a>)</li></ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4305962022-12-15T16:55:34ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/73111">0005-test-modify-test-to-test-on-a-real-form-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73111/0005-test-modify-test-to-test-on-a-real-form-67090.patch">0005-test-modify-test-to-test-on-a-real-form-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73112">0004-tests-use-cookie-name-in-get_session-app-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73112/0004-tests-use-cookie-name-in-get_session-app-67090.patch">0004-tests-use-cookie-name-in-get_session-app-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73113">0003-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73113/0003-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch">0003-saml2-store-current-value-of-OPENED_SESSION_COOKIE-i.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73114">0001-misc-replace-deprecated-distutils-features-by-setupt.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73114/0001-misc-replace-deprecated-distutils-features-by-setupt.patch">0001-misc-replace-deprecated-distutils-features-by-setupt.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73115">0002-misc-retry-passive-sso-when-session-expire-and-logou.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73115/0002-misc-retry-passive-sso-when-session-expire-and-logou.patch">0002-misc-retry-passive-sso-when-session-expire-and-logou.patch</a> ajouté</li><li><strong>Tracker</strong> changé de <i>Bug</i> à <i>Development</i></li></ul><p>J'ai remis le test sur le chemin '/', ça donne quand même une information sur le fait que ça marche partout.</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4309102022-12-16T13:23:04ZFrédéric Pétersfpeters@entrouvert.com
<ul></ul><p>Il y a cinq patchs attachés mais dans la branche il y a 4 commits ? (ok... c'est 0001 qui s'est perdu ici).</p>
<p>Le sujet du commit 0002 est bien trop long.</p>
<p>Dans ce qui semble un changement d'indentation se glisse au moins une modification (secure=request.scheme == 'https'), ça aiderait la relecture de pointer ce qu'il pourrait y avoir d'autre.</p>
<p>Dans 0003 idéalement les nouveaux attributs sont intégrés dans has_info().</p>
<p>Dans 0004 au-delà de la description donnée dans le sujet il y a un ignore_errors=True qui s'est glissé.</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4315412022-12-20T10:17:09ZBenjamin Dauvergne
<ul></ul><p>Frédéric Péters a écrit :</p>
<blockquote>
<p>Le sujet du commit 0002 est bien trop long.</p>
</blockquote>
<p>Ok, je revois ça.</p>
<blockquote>
<p>Dans ce qui semble un changement d'indentation se glisse au moins une modification (secure=request.scheme 'https'), ça aiderait la relecture de pointer ce qu'il pourrait y avoir d'autre.</p>
</blockquote>
<p>J'ai mergé 0003 dans 0002, les deux ne fonctionnent pas sans l'autre de toute façon et j'ai réduit le titre du commit et mis une description plus exhaustive des changements de comportement.</p>
<p>Le changement secure.request.scheme 'https' c'est pour que ça fonctionne dans les tests: comme webtest simule des requêtes http cookiejar refusait de servir les cookies.</p>
<blockquote>
<p>Dans 0003 idéalement les nouveaux attributs sont intégrés dans has_info().</p>
</blockquote>
<p>Ok je l'ajoute pour la forme, de fait sur un login il y a tellement de choses qui changent dans la session qu'elle est toujours sauvée (ce mécanisme has_info n'est pas terrible, un jour il faudra voir à faire un truc plus proche de ce que fait Django qui essaye de détecter les modifications).</p>
<blockquote>
<p>Dans 0004 au-delà de la description donnée dans le sujet il y a un ignore_errors=True qui s'est glissé.</p>
</blockquote>
<p>Ce changement est retiré, ça n'est pas/plus nécessaire, j'ai bataillé avec les cookies de session, c'est devenu <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Development: Problème avec plusieurs Set-cookie dans le code conversion Quixote et Django (Fermé)" href="https://dev.entrouvert.org/issues/72613">#72613</a> (la branche est rebasée sur <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Development: Problème avec plusieurs Set-cookie dans le code conversion Quixote et Django (Fermé)" href="https://dev.entrouvert.org/issues/72613">#72613</a>).</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4315432022-12-20T10:17:28ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/73207">0002-tests-use-cookie-name-in-get_session-app-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73207/0002-tests-use-cookie-name-in-get_session-app-67090.patch">0002-tests-use-cookie-name-in-get_session-app-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73208">0001-misc-improve-passive-sso-on-state-change-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73208/0001-misc-improve-passive-sso-on-state-change-67090.patch">0001-misc-improve-passive-sso-on-state-change-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73209">0003-test-modify-test-to-test-on-a-real-form-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73209/0003-test-modify-test-to-test-on-a-real-form-67090.patch">0003-test-modify-test-to-test-on-a-real-form-67090.patch</a> ajouté</li></ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4321912022-12-23T08:43:51ZFrédéric Pétersfpeters@entrouvert.com
<ul></ul><pre>
+ OPENED_SESSION_COOKIE = get_publisher().get_site_option('idp_session_cookie_name')
+ if OPENED_SESSION_COOKIE:
+ if OPENED_SESSION_COOKIE in get_request().cookies:
+ session.opened_session_value = get_request().cookies[OPENED_SESSION_COOKIE]
</pre>
<p>Tant qu'à avoir tout ce code qui change (ici et ailleurs), ça pourrait être l'occasion pour écrire en minuscules, comme des variables classiques ? (ça aurait en bonus de sans doute produire un diff plus lisible, qui n'intercalerait pas quelques lignes d'ancien code au milieu du nouveau).</p>
<p>Sur le fond j'ai un peu peur de la partie</p>
<pre>
- if user is logged and IDP_OPENED_SESSION cookie value differs from
the one saved in the Quixote session, user is logged out, if not
treatment stop here.
</pre>
<p>mais elle existe dans django-mellon et ça semble passer là, donc ok.</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4322912022-12-23T10:01:29ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/73314">0004-test-modify-test-to-test-on-a-real-form-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73314/0004-test-modify-test-to-test-on-a-real-form-67090.patch">0004-test-modify-test-to-test-on-a-real-form-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73315">0003-tests-use-cookie-name-in-get_session-app-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73315/0003-tests-use-cookie-name-in-get_session-app-67090.patch">0003-tests-use-cookie-name-in-get_session-app-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73316">0002-misc-improve-passive-sso-on-state-change-67090.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73316/0002-misc-improve-passive-sso-on-state-change-67090.patch">0002-misc-improve-passive-sso-on-state-change-67090.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/73317">0001-misc-let-django-generate-set-cookies-headers-72613.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/73317/0001-misc-let-django-generate-set-cookies-headers-72613.patch">0001-misc-let-django-generate-set-cookies-headers-72613.patch</a> ajouté</li></ul><p>Variables mises en minuscule et message de commit et commentaires dans les tests adaptés en conséquence.</p> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4326462022-12-27T08:44:35ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-default closed" href="/issues/72613">Development #72613</a>: Problème avec plusieurs Set-cookie dans le code conversion Quixote et Django</i> ajouté</li></ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4326482022-12-27T08:45:23ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Solution proposée</i> à <i>Résolu (à déployer)</i></li></ul><pre>
commit 8880ab0d6a06cc622748a1beb7bc667ed395418d
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date: Thu Dec 15 17:32:25 2022 +0100
test: modify test to test on a real form (#67090)
commit bc4d9e17f10065d6774fd0aeea8492c42ad95c44
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date: Wed Jul 6 19:02:23 2022 +0200
tests: use cookie name in get_session(app) (#67090)
commit 6a4cea8b30c7a3d47f4bb0030c182005c07d8554
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date: Wed Jul 6 19:06:03 2022 +0200
misc: improve passive sso on state change (#67090)
- automatic_sso is renamed try_passive_sso to be clearer on the goal of
the method,
- test for possible passive sso is now done before rendering the current
page,
- on a succesfull SSO if <idp_session_cookie_name> cookie is present,
its value is saved in the Quixote session,
- behaviour of try_passive_sso is changed:
- if user is logged in or <idp_session_cookie_name> cookie value
differs from the value in '*-passive-auth-tried' cookie, the
'*-passive-auth-tried' cookie is expired,
- if user is logged and <idp_session_cookie_name> cookie cookie value
differs from the one saved in the Quixote session, user is logged
out, if not treatment stop here.
- if the <idp_session_cookie_name> cookie cookie is not valued or if
its value is equal to '*-passive-auth-tried' cookie, treatment stops here,
- if the <idp_session_cookie_name> cookie is valued and its value
differs from the '*-passive-auth-tried' cookie cookie value, then
'*-passive-auth-tried' cookie is set to the value of
<idp_session_cookie_name> cookie and a passive SSO is tried.
</pre> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4326962022-12-27T11:15:05ZTransition automatique
<ul><li><strong>Statut</strong> changé de <i>Résolu (à déployer)</i> à <i>Solution déployée</i></li></ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4344132023-01-06T14:22:37ZRobot Gitea
<ul><li><strong>Assigné à</strong> changé de <i>Benjamin Dauvergne</i> à <i>Frédéric Péters</i></li></ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4345022023-01-06T16:44:26ZRobot Gitea
<ul></ul><p>Frédéric Péters (fpeters) a lié une pull request sur Gitea concernant cette demande :</p>
<ul>
<li>URL : <a class="external" href="https://gitea.entrouvert.org/entrouvert/wcs/pulls/14">https://gitea.entrouvert.org/entrouvert/wcs/pulls/14</a></li>
<li>Titre : saml: create a new session if expired during passive SSO (<a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: message d'erreur sans session ? (AttributeError: 'NoneType' object has no attribute 'message') (Fermé)" href="https://dev.entrouvert.org/issues/72898">#72898</a>)</li>
<li>Modifications : <a class="external" href="https://gitea.entrouvert.org/entrouvert/wcs/pulls/14/files">https://gitea.entrouvert.org/entrouvert/wcs/pulls/14/files</a></li>
</ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4345032023-01-06T16:45:12ZRobot Gitea
<ul></ul><p>Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :</p>
<ul>
<li>URL : <a class="external" href="https://gitea.entrouvert.org/entrouvert/wcs/pulls/14">https://gitea.entrouvert.org/entrouvert/wcs/pulls/14</a></li>
<li>Titre : saml: create a new session if expired during passive SSO (<a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: message d'erreur sans session ? (AttributeError: 'NoneType' object has no attribute 'message') (Fermé)" href="https://dev.entrouvert.org/issues/72898">#72898</a>)</li>
<li>Modifications : <a class="external" href="https://gitea.entrouvert.org/entrouvert/wcs/pulls/14/files">https://gitea.entrouvert.org/entrouvert/wcs/pulls/14/files</a></li>
</ul> w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPhttps://dev.entrouvert.org/issues/67090?journal_id=4503652023-03-12T03:42:01ZTransition automatique
<ul></ul><p>Automatic expiration</p>