Development #61125
pouvoir s'authentifier de n'importe quelle manière pour un changement d'email
0%
Description
Actuellement on ne supporte que le mode "mot de passe", il faudrait gérer n'importe quel type.
Files
Related issues
Associated revisions
utils: add sign_next_url to redirect() (#61125)
auth_fc: make autorun go directly to FranceConnect URL (#61125)
auth_fc: record authentication on link only if link already exists and was created before last_login (#61125)
auth_fc: allow showing messages on authorization requests (#61125)
views: support any kind of authentication for email change (#61125)
History
Updated by Benjamin Dauvergne 4 months ago
- Related to Development #28853: Plutôt que de demander le mot de passe lors d'une suppression, lancer une réauthentification added
Updated by Benjamin Dauvergne 4 months ago
- File 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch added
- File 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch added
- File 0001-message-keep-set-cookie-when-showing-messafe-during-.patch 0001-message-keep-set-cookie-when-showing-messafe-during-.patch added
- File 0002-utils-add-sign_next_url-to-redirect-61125.patch 0002-utils-add-sign_next_url-to-redirect-61125.patch added
- File 0006-views-support-any-kind-of-authentication-for-email-c.patch 0006-views-support-any-kind-of-authentication-for-email-c.patch added
- File 0004-auth_fc-record-authentication-event-on-link-61125.patch 0004-auth_fc-record-authentication-event-on-link-61125.patch added
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
Ça a demandé pas mal de modifications en dehors de la vue de changement d'email pour tester avec l'authentification FranceConnect qui ne se comporte pas exactement comme une authentification par mot de passe.
0001: quand la vue de présentation des messages intervient, elle oublie les cookies dernièrement posés, comme la vue de login FranceConnect pose un cookie ça casse, ici on recopie response.cookies d'une réponse à l'autre.
0002: le middleware de présentation des messages ne signait pas son next_url, donc l'acceptation de ?next= par la vue /continue/ dépendant des validateurs d'URL, et le module FranceConnect n'en propose pas, mais ce n'est pas nécessaire de valider comme cela, le middleware produit des URLs de confiance il peut directement signer; donc j'ajoute le support de sign_next_url à utils_misc.redirect() (il était déjà dans utils_misc.make_url())
0003: normalemt FranceConnect n'affiche pas les messages enregistrés (en désactivant le middleware concerné) dans le cas du test on souhaite que le message s'affiche sur un autorun vers FC (vu qu'on limite les modes d'authentification possible à ceux déjà en cours), et donc c'est plus simple d'appeler directement la vue LoginOrLink depuis la méthode autorun() que de faire une énième redirection interne
0004: le test pour savoir si une authentification récente a eu lieu dépend de l'enregistrement dans session['authentication-events'] mais dans le cas d'un "link", ça n'était pas fait, on ajoute ça.
0005: ici on implémente pour la vue d'authorization FC le fait de pouvoir contrôler l'affichage ou pas des messages
0006: enfin on ajoute la réauthentification à la vue changement d'email, si la dernière authentification n'est pas via mot de passe et qu'elle a plus de 10 minutes.
Updated by Benjamin Dauvergne 4 months ago
Ajout de rebase: record authentication on link only if link already exists and was created before last_login
sur la branche : on ne veut pas d'une validation via delink/relink sur un nouveau compte FC, c'est triché, à vrai dire on devrait protéger le delink via le même genre de mécanisme.
Updated by Paul Marillonnet 3 months ago
- Status changed from Solution proposée to Solution validée
- je note l’ajout fait après 0004 sur la branche que tu mentionnes dans #61125-4. penser à squasher parce que 0004 seul est entièrement défait par celui qui vient ensuite.
- 0003 est un anachronisme de 0005, non ? (ou alors je loupe un truc)
- 0006 :
last_event['how'].startswith('password-')
-> on a autre chose que 'password-on-https' ? - une petite faute dans le message de commit de 0001 (s/messafe/message)
Updated by Benjamin Dauvergne 3 months ago
Paul Marillonnet a écrit :
Tout relu, c’est ok pour moi sauf :
- je note l’ajout fait après 0004 sur la branche que tu mentionnes dans #61125-4. penser à squasher parce que 0004 seul est entièrement défait par celui qui vient ensuite.
Ok, fait.
- 0003 est un anachronisme de 0005, non ? (ou alors je loupe un truc)
Oui, il devrait venir après tu as raison.
- 0006 :
last_event['how'].startswith('password-')
-> on a autre chose que 'password-on-https' ?
Nous non, mais tu as raison à un moment je devrait juste revenir à 'password' partout et virer cette différenciation, là j'ai mis == 'password-on-https'
à la place.
- une petite faute dans le message de commit de 0001 (s/messafe/message)
Corrigé, je relance un coup de tox et je pousse, merci.
Updated by Paul Marillonnet 3 months ago
Benjamin Dauvergne a écrit :
Nous non, mais tu as raison à un moment je devrait juste revenir à 'password' partout et virer cette différenciation, là j'ai mis
== 'password-on-https'
à la place.
(Ok d’ac, ça ou au moins retirer le '-' dans startswith('password-')
sinon ça va casser quand on changera ça.)
Updated by Benjamin Dauvergne 3 months ago
- File 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch added
- File 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch added
- File 0004-auth_fc-record-authentication-on-link-only-if-link-a.patch 0004-auth_fc-record-authentication-on-link-only-if-link-a.patch added
- File 0002-utils-add-sign_next_url-to-redirect-61125.patch 0002-utils-add-sign_next_url-to-redirect-61125.patch added
- File 0001-message-keep-set-cookie-when-showing-message-during-.patch 0001-message-keep-set-cookie-when-showing-message-during-.patch added
- File 0006-views-support-any-kind-of-authentication-for-email-c.patch 0006-views-support-any-kind-of-authentication-for-email-c.patch added
- Status changed from Solution validée to Solution proposée
Rebasé sur #28853, rebasé lui aussi sur main.
Updated by Paul Marillonnet 2 months ago
- Status changed from Solution proposée to Solution validée
Ok.
Updated by Benjamin Dauvergne 2 months ago
- Status changed from Solution validée to Résolu (à déployer)
commit e7a2621ab43cea2d36980cf1ba5b7708c8cd4c12 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Wed Jan 26 15:02:56 2022 +0100 views: support any kind of authentication for email change (#61125) commit 8b9ffb3dfa44775eaa0b24b2dc3ecaa0c9a78f48 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Wed Jan 26 15:02:27 2022 +0100 auth_fc: allow showing messages on authorization requests (#61125) commit a2c38c0ddb752a787dcf7fd6dc6b67c22f80deb3 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Wed Jan 26 15:02:01 2022 +0100 auth_fc: record authentication on link only if link already exists and was created before last_login (#61125) commit 6eb9bc98f4982769c0174ac981f4fb44d2d11241 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Wed Jan 26 15:01:47 2022 +0100 auth_fc: make autorun go directly to FranceConnect URL (#61125) commit b14879dece5775a0e2ac74c1ff038af184c637a2 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Wed Jan 26 15:01:00 2022 +0100 utils: add sign_next_url to redirect() (#61125) commit 32ec5edd4da6fde080fdcd49438c16c38dbc2df5 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Wed Jan 26 14:59:51 2022 +0100 message: keep set-cookie when showing message during redirect (#61125)
Updated by Transition automatique 2 months ago
- Status changed from Résolu (à déployer) to Solution déployée
message: keep set-cookie when showing message during redirect (#61125)