Project

General

Profile

Development #19959

N'autoriser qu'une seule fédération avec FC uniquement

Added by Serghei Mihai over 2 years ago. Updated 3 months ago.

Status:
Solution déployée
Priority:
Normal
Category:
FranceConnect
Target version:
-
Start date:
08 Nov 2017
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Pour prévenir les cas traité dans #19947.

0001-auth_fc-make-user-and-sub-relatively-unique-19959.patch View (15.9 KB) Benjamin Dauvergne, 14 Jun 2019 03:52 PM

0001-auth_fc-make-user-and-sub-relatively-unique-19959.patch View (20.8 KB) Benjamin Dauvergne, 14 Jun 2019 04:00 PM

0001-auth_fc-make-user-and-sub-relatively-unique-19959.patch View (24 KB) Benjamin Dauvergne, 30 Oct 2019 09:00 PM


Related issues

Related to Plugin FS FranceConnect - Bug #19947: Le modèle FcAccount ne contient aucune règle d'unicité il faut en tenir compte dans les templates Fermé 07 Nov 2017
Related to Plugin FS FranceConnect - Development #22915: Passer les textes de liaison de compte sur la page Mon compte lorsqu'une seule fédération est autorisé Nouveau 30 Mar 2018

Associated revisions

Revision a1b527f7 (diff)
Added by Benjamin Dauvergne 3 months ago

tests: add a migration fixture (#19959)

To help in testing migrations.

Revision 46660412 (diff)
Added by Benjamin Dauvergne 3 months ago

tests: use migration fixture in idp_oidc migration's tests (#19959)

Revision b4395932 (diff)
Added by Benjamin Dauvergne 3 months ago

auth_fc: make user and sub relatively unique (#19959)

As we are not sure they are unique in all deployments, we make them
unique relative to a new order integer field. New federations with
FranceConnect with be forced to have the column order to be 0, making
them unique.

History

#1 Updated by Benjamin Dauvergne over 2 years ago

  • Related to Bug #19947: Le modèle FcAccount ne contient aucune règle d'unicité il faut en tenir compte dans les templates added

#2 Updated by Benjamin Dauvergne over 2 years ago

Je préfère traiter ça à tête reposée parce qu'une migration pour rendre (user, sub) unique risque de péter en mise en prod ailleurs.

#3 Updated by Benjamin Dauvergne over 2 years ago

  • Target version set to 0.11

#4 Updated by Benjamin Dauvergne over 2 years ago

  • Target version changed from 0.11 to future

#5 Updated by Mikaël Ates over 2 years ago

  • Assignee set to Benjamin Dauvergne
  • Subject changed from autoriser une seule fédération avec FC uniquement to N'autoriser qu'une seule fédération avec FC uniquement
  • Status changed from Nouveau to Information nécessaire

Il me semble que c'est déjà le cas via les interfaces.

#6 Updated by Mikaël Ates over 2 years ago

  • Related to Development #22915: Passer les textes de liaison de compte sur la page Mon compte lorsqu'une seule fédération est autorisé added

#7 Updated by Benjamin Dauvergne over 2 years ago

L'interface oui mais le modèle de donnée ne l'interdit pas, on avait un souci sur l'enregistrement qui est corrigé mais reste à voir si on va jusqu'à l'empêcher complètement au niveau schéma de donnée.

#9 Updated by Benjamin Dauvergne over 1 year ago

Plan, ajouter un champ order=IntegerField(default=0), l'initialiser à la valeur de l'ordre du compte dans ceux avec un même (user, sub), puis le rendre unique, ça nous protège des soucis de migration et ça rend les choses uniques par ailleurs (ajouter un order=0 au get_or_create() qui construisent les nouveaux comptes).

#11 Updated by Benjamin Dauvergne about 1 year ago

  • Status changed from Information nécessaire to En cours

#12 Updated by Benjamin Dauvergne about 1 year ago

  • Target version deleted (future)

#13 Updated by Benjamin Dauvergne about 1 year ago

C'est construit au dessus de #33992 parce que j'y modifie l'appel à authenticate().

L'idée c'est d'ajouter une colonne order entière à FcAccount et rendre unique user/sub relativement à order, quand on trouve un doublon on incrémente order.

Ensuite je modifie tous les appels de create/get_or_create pour forcer order=0, ça lève des IntegrityError si doublon, au passage je factorise plus de choses dans update_user_info(). La prochaine étape c'est #33991 pour ré-organiser tout ça et bien mettre toute l'authentification dans le backend et pas à moitié dans la vue ainsi qu'avoir la liaison par mail et la liaison au login qui soit paramétrable.

#14 Updated by Benjamin Dauvergne about 1 year ago

Test sur la migration oublié sur une autre branche.

#15 Updated by Benjamin Dauvergne about 1 year ago

  • Project changed from Plugin FS FranceConnect to Authentic 2

#16 Updated by Benjamin Dauvergne about 1 year ago

  • Category set to FranceConnect

#17 Updated by Benjamin Dauvergne about 1 year ago

Pas de doublons sur les autres productions.

#18 Updated by Benjamin Dauvergne 9 months ago

Rebasé, la fixture migration intégrées dans les autres tests sur les migrations.

#19 Updated by Serghei Mihai 3 months ago

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

#20 Updated by Benjamin Dauvergne 3 months ago

  • Status changed from Solution validée to Résolu (à déployer)
commit b4395932030d6869869b6436df84ac9b9bb76eb0
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Jun 13 11:47:49 2019 +0200

    auth_fc: make user and sub relatively unique (#19959)

    As we are not sure they are unique in all deployments, we make them
    unique relative to a new order integer field. New federations with
    FranceConnect with be forced to have the column order to be 0, making
    them unique.

commit 466604122ef40426a73c5e15e50c83b13b2a050a
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Mon Apr 27 18:00:11 2020 +0200

    tests: use migration fixture in idp_oidc migration's tests (#19959)

commit a1b527f7014b0fd4514a91b65b4faf2c834aab60
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Mon Apr 27 17:58:07 2020 +0200

    tests: add a migration fixture (#19959)

    To help in testing migrations.

#21 Updated by Frédéric Péters 3 months ago

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

Also available in: Atom PDF