Project

General

Profile

Development #61125

pouvoir s'authentifier de n'importe quelle manière pour un changement d'email

Added by Benjamin Dauvergne 4 months ago. Updated 2 months ago.

Status:
Fermé
Priority:
Normal
Category:
-
Target version:
-
Start date:
26 Jan 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

Actuellement on ne supporte que le mode "mot de passe", il faudrait gérer n'importe quel type.


Files

0005-auth_fc-allow-showing-messages-on-authorization-requ.patch (1.13 KB) 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch Benjamin Dauvergne, 26 Jan 2022 04:12 PM
0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch (1.9 KB) 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch Benjamin Dauvergne, 26 Jan 2022 04:12 PM
0001-message-keep-set-cookie-when-showing-messafe-during-.patch (1.11 KB) 0001-message-keep-set-cookie-when-showing-messafe-during-.patch Benjamin Dauvergne, 26 Jan 2022 04:12 PM
0002-utils-add-sign_next_url-to-redirect-61125.patch (1001 Bytes) 0002-utils-add-sign_next_url-to-redirect-61125.patch Benjamin Dauvergne, 26 Jan 2022 04:12 PM
0006-views-support-any-kind-of-authentication-for-email-c.patch (6.66 KB) 0006-views-support-any-kind-of-authentication-for-email-c.patch Benjamin Dauvergne, 26 Jan 2022 04:12 PM
0004-auth_fc-record-authentication-event-on-link-61125.patch (816 Bytes) 0004-auth_fc-record-authentication-event-on-link-61125.patch Benjamin Dauvergne, 26 Jan 2022 04:12 PM
0005-auth_fc-allow-showing-messages-on-authorization-requ.patch (1.12 KB) 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch Benjamin Dauvergne, 17 Feb 2022 08:00 PM
0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch (1.91 KB) 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch Benjamin Dauvergne, 17 Feb 2022 08:00 PM
0004-auth_fc-record-authentication-on-link-only-if-link-a.patch (1.08 KB) 0004-auth_fc-record-authentication-on-link-only-if-link-a.patch Benjamin Dauvergne, 17 Feb 2022 08:00 PM
0002-utils-add-sign_next_url-to-redirect-61125.patch (1001 Bytes) 0002-utils-add-sign_next_url-to-redirect-61125.patch Benjamin Dauvergne, 17 Feb 2022 08:00 PM
0001-message-keep-set-cookie-when-showing-message-during-.patch (1.11 KB) 0001-message-keep-set-cookie-when-showing-message-during-.patch Benjamin Dauvergne, 17 Feb 2022 08:00 PM
0006-views-support-any-kind-of-authentication-for-email-c.patch (6.75 KB) 0006-views-support-any-kind-of-authentication-for-email-c.patch Benjamin Dauvergne, 17 Feb 2022 08:00 PM

Related issues

Related to Authentic 2 - Development #28853: Plutôt que de demander le mot de passe lors d'une suppression, lancer une réauthentificationFermé11 Dec 2018

Actions

Associated revisions

Revision 22d22c05 (diff)
Added by Benjamin Dauvergne 2 months ago

message: keep set-cookie when showing message during redirect (#61125)

Revision ad396374 (diff)
Added by Benjamin Dauvergne 2 months ago

utils: add sign_next_url to redirect() (#61125)

Revision 5744a960 (diff)
Added by Benjamin Dauvergne 2 months ago

auth_fc: make autorun go directly to FranceConnect URL (#61125)

Revision 9b1bbb63 (diff)
Added by Benjamin Dauvergne 2 months ago

auth_fc: record authentication on link only if link already exists and was created before last_login (#61125)

Revision 79ed588b (diff)
Added by Benjamin Dauvergne 2 months ago

auth_fc: allow showing messages on authorization requests (#61125)

Revision 4c97a611 (diff)
Added by Benjamin Dauvergne 2 months ago

views: support any kind of authentication for email change (#61125)

History

#1

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
#2

Updated by Benjamin Dauvergne 4 months ago

  • Assignee set to Benjamin Dauvergne
#3

Updated by Benjamin Dauvergne 4 months ago

Ç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.

#4

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.

#5

Updated by Paul Marillonnet 3 months ago

  • Status changed from Solution proposée to Solution validée
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.
  • 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)
#6

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.

#7

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.)

#9

Updated by Paul Marillonnet 2 months ago

  • Status changed from Solution proposée to Solution validée

Ok.

#10

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)
#11

Updated by Transition automatique 2 months ago

  • Status changed from Résolu (à déployer) to Solution déployée
#12

Updated by Transition automatique about 7 hours ago

Automatic expiration

Also available in: Atom PDF