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.
Fichiers
Demandes liées
Révisions associées
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)
Historique
Mis à jour par Benjamin Dauvergne il y a environ 2 ans
- Lié à Development #28853: Plutôt que de demander le mot de passe lors d'une suppression, lancer une réauthentification ajouté
Mis à jour par Benjamin Dauvergne il y a environ 2 ans
- Fichier 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch ajouté
- Fichier 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch ajouté
- Fichier 0001-message-keep-set-cookie-when-showing-messafe-during-.patch 0001-message-keep-set-cookie-when-showing-messafe-during-.patch ajouté
- Fichier 0002-utils-add-sign_next_url-to-redirect-61125.patch 0002-utils-add-sign_next_url-to-redirect-61125.patch ajouté
- Fichier 0006-views-support-any-kind-of-authentication-for-email-c.patch 0006-views-support-any-kind-of-authentication-for-email-c.patch ajouté
- Fichier 0004-auth_fc-record-authentication-event-on-link-61125.patch 0004-auth_fc-record-authentication-event-on-link-61125.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Ç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.
Mis à jour par Benjamin Dauvergne il y a environ 2 ans
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.
Mis à jour par Paul Marillonnet il y a environ 2 ans
- Statut changé de Solution proposée à 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)
Mis à jour par Benjamin Dauvergne il y a environ 2 ans
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.
Mis à jour par Paul Marillonnet il y a environ 2 ans
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.)
Mis à jour par Benjamin Dauvergne il y a environ 2 ans
- Fichier 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch ajouté
- Fichier 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch ajouté
- Fichier 0004-auth_fc-record-authentication-on-link-only-if-link-a.patch 0004-auth_fc-record-authentication-on-link-only-if-link-a.patch ajouté
- Fichier 0002-utils-add-sign_next_url-to-redirect-61125.patch 0002-utils-add-sign_next_url-to-redirect-61125.patch ajouté
- Fichier 0001-message-keep-set-cookie-when-showing-message-during-.patch 0001-message-keep-set-cookie-when-showing-message-during-.patch ajouté
- Fichier 0006-views-support-any-kind-of-authentication-for-email-c.patch 0006-views-support-any-kind-of-authentication-for-email-c.patch ajouté
- Statut changé de Solution validée à Solution proposée
Rebasé sur #28853, rebasé lui aussi sur main.
Mis à jour par Paul Marillonnet il y a environ 2 ans
- Statut changé de Solution proposée à Solution validée
Ok.
Mis à jour par Benjamin Dauvergne il y a environ 2 ans
- Statut changé de Solution validée à 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)
Mis à jour par Transition automatique il y a environ 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
message: keep set-cookie when showing message during redirect (#61125)