Projet

Général

Profil

Development #61125

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

Ajouté par Benjamin Dauvergne il y a environ 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
26 janvier 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

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


Fichiers

0005-auth_fc-allow-showing-messages-on-authorization-requ.patch (1,13 ko) 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch Benjamin Dauvergne, 26 janvier 2022 16:12
0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch (1,9 ko) 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch Benjamin Dauvergne, 26 janvier 2022 16:12
0001-message-keep-set-cookie-when-showing-messafe-during-.patch (1,11 ko) 0001-message-keep-set-cookie-when-showing-messafe-during-.patch Benjamin Dauvergne, 26 janvier 2022 16:12
0002-utils-add-sign_next_url-to-redirect-61125.patch (1001 octets) 0002-utils-add-sign_next_url-to-redirect-61125.patch Benjamin Dauvergne, 26 janvier 2022 16:12
0006-views-support-any-kind-of-authentication-for-email-c.patch (6,66 ko) 0006-views-support-any-kind-of-authentication-for-email-c.patch Benjamin Dauvergne, 26 janvier 2022 16:12
0004-auth_fc-record-authentication-event-on-link-61125.patch (816 octets) 0004-auth_fc-record-authentication-event-on-link-61125.patch Benjamin Dauvergne, 26 janvier 2022 16:12
0005-auth_fc-allow-showing-messages-on-authorization-requ.patch (1,12 ko) 0005-auth_fc-allow-showing-messages-on-authorization-requ.patch Benjamin Dauvergne, 17 février 2022 20:00
0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch (1,91 ko) 0003-auth_fc-make-autorun-go-directly-to-FranceConnect-UR.patch Benjamin Dauvergne, 17 février 2022 20:00
0004-auth_fc-record-authentication-on-link-only-if-link-a.patch (1,08 ko) 0004-auth_fc-record-authentication-on-link-only-if-link-a.patch Benjamin Dauvergne, 17 février 2022 20:00
0002-utils-add-sign_next_url-to-redirect-61125.patch (1001 octets) 0002-utils-add-sign_next_url-to-redirect-61125.patch Benjamin Dauvergne, 17 février 2022 20:00
0001-message-keep-set-cookie-when-showing-message-during-.patch (1,11 ko) 0001-message-keep-set-cookie-when-showing-message-during-.patch Benjamin Dauvergne, 17 février 2022 20:00
0006-views-support-any-kind-of-authentication-for-email-c.patch (6,75 ko) 0006-views-support-any-kind-of-authentication-for-email-c.patch Benjamin Dauvergne, 17 février 2022 20:00

Demandes liées

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

Actions

Révisions associées

Révision 22d22c05 (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

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

Révision ad396374 (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

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

Révision 5744a960 (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

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

Révision 9b1bbb63 (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

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

Révision 79ed588b (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

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

Révision 4c97a611 (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

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

Historique

#1

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

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

  • Assigné à mis à Benjamin Dauvergne
#3

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

Ç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

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.

#5

Mis à jour par Paul Marillonnet il y a environ 2 ans

  • Statut changé de Solution proposée à 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

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.

#7

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

#9

Mis à jour par Paul Marillonnet il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée

Ok.

#10

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

Mis à jour par Transition automatique il y a environ 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#12

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF