Projet

Général

Profil

Development #66876

migrer FedictAuthenticator et sa config en base

Ajouté par Paul Marillonnet il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
01 juillet 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Ici pour la connexion fedict/bosa, on est sur du SAML avec quelques spécificités, on pourrait imaginer un travail reposant sur #65483 (la migration des authentificateurs SAML en base), ce qui permettrait de retirer un bout du code authentic qui (une fois #65483 passé) ne serait plus ici que pour ce plugin, i.e. authentic2.authenticators (qui en plus d’être quasi-déprécié, crée la confusion avec ce qu’on utilise maintenant, à savoir authentic2.apps.authenticators.models).


Fichiers


Demandes liées

Lié à Authentic 2 - Development #66853: virer authentic2.authenticatorsFermé01 juillet 2022

Actions
Lié à Authentic 2 - Development #65483: configuration des méthodes d'authentification, SAMLFermé19 mai 2022

Actions
Lié à Authentic 2 - Development #67103: authenticators, éviter la modification du nom d'un block de loginFermé07 juillet 2022

Actions
Bloque Authentic 2 - Development #65479: configuration de l'ordre des méthodes d'authentificationFermé19 mai 2022

Actions

Révisions associées

Révision 803d0cb3 (diff)
Ajouté par Valentin Deniaud il y a plus d'un an

misc: move authenticator code to models.py (#66876)

Révision 86033d32 (diff)
Ajouté par Valentin Deniaud il y a plus d'un an

migrate authenticator to database (#66876)

Historique

#1

Mis à jour par Paul Marillonnet il y a plus d'un an

#2

Mis à jour par Paul Marillonnet il y a plus d'un an

  • Lié à Development #65483: configuration des méthodes d'authentification, SAML ajouté
#3

Mis à jour par Paul Marillonnet il y a plus d'un an

  • Description mis à jour (diff)
#4

Mis à jour par Valentin Deniaud il y a plus d'un an

  • Assigné à mis à Valentin Deniaud
#6

Mis à jour par Valentin Deniaud il y a plus d'un an

  • Lié à Development #67103: authenticators, éviter la modification du nom d'un block de login ajouté
#7

Mis à jour par Valentin Deniaud il y a plus d'un an

(rouge pour le moment en raison du ticket lié)

#11

Mis à jour par Valentin Deniaud il y a plus d'un an

  • Bloque Development #65479: configuration de l'ordre des méthodes d'authentification ajouté
#12

Mis à jour par Paul Marillonnet il y a plus d'un an

Bon, 1h à tenter de remonter un environnement similaire en local, en vain et malgré la copie de ma conf qui avait fonctionné pour coder #60837. Toujours des erreurs lasso, côté idp imitant le csam, au chargement du SP authentic qui inclut l’authentificateur fedict, sans plus de précision et alors que l’enregistrement du SP à partir de l’url des MD dans l’/admin/ "csam" se passe sans souci. Ça commence à me gaver.

La migration se passe sans encombres, je vais relire le code.

#13

Mis à jour par Frédéric Péters il y a plus d'un an

Toujours des erreurs lasso, côté idp imitant le csam, au chargement du SP authentic qui inclut l’authentificateur fedict

Éventuellement sur un autre ticket mais on parle bien de https://connexion-csam.test.entrouvert.org/ quelle manip quelle erreur ? Très vite quand je compare https://connexion-csam.test.entrouvert.org/admin/saml/libertyprovider/6/change/ et https://connexion-csam.test.entrouvert.org/admin/saml/libertyprovider/4/change/ le mien n'a pas la section KeyDescriptor, ça élimine toute une classe de problèmes.

#14

Mis à jour par Paul Marillonnet il y a plus d'un an

Frédéric Péters a écrit :

Éventuellement sur un autre ticket mais on parle bien de https://connexion-csam.test.entrouvert.org/ quelle manip quelle erreur ? Très vite quand je compare https://connexion-csam.test.entrouvert.org/admin/saml/libertyprovider/6/change/ et https://connexion-csam.test.entrouvert.org/admin/saml/libertyprovider/4/change/ le mien n'a pas la section KeyDescriptor, ça élimine toute une classe de problèmes.

Je vais regarder cela ensuite par acquis de conscience, mais je n’avais pas vu passer la note 10 de ce ticket qui indique que ça a déjà été appliqué en local avec succès. Je suis en train de relire le code.

#15

Mis à jour par Paul Marillonnet il y a plus d'un an

Dans l’immédiat, ce qui m’embête un peu est cette impression que l’IdP CSAM, puisqu’apparaissant dans la liste les IdPs déclarés dans les settings mellon (avec un ENTITY_ID:="belgium.be"), va atterrir à la fois en tant qu’authentificateur SAML et en tant qu’authentificateur Fedict dans le /manage/.
Sur la machine d’Imio, les migrations authentic2_auth_saml/migrations/0002_auto_20220608_1559.py et authentic2_auth_fedict/migrations/0002_auto_20220706_1712.py vont toutes deux êtres exécutées et sauf erreur de ma part on aura deux authentificateurs différents. Il faudrait peut-être faire dépendre la migration de création de l’authentificateur Fedict de celle créant les authentificateurs SAML, ensuite dans la migration Fedict vérifier qu’un authentificateur SAML de même identifiant n’existe pas déjà, et le supprimer au besoin. Je me plante ?

D’autres remarques, pas du tout rédhibitoires et qu’on pourrait traiter dans des prochains tickets : réduire encore la dépendances aux settings et retirer des choses écrites en dur dans le code, en se rapprochant du modèle de l’authentificateur SAML. Quelques exemples comme le mapping écrit en dur dans le code de l’adaptateur et qu’on pourrait voir apparaître en lecture seule dans le /manage/, ou bien encore les AUTHN_CLASSREF qui sont ici utilisées pour déterminer si le raccordement Fedict supporte [a] le compte ItsMe et [b] les jetons personnels, avec [a] et [b] qui pourraient être des cases à cocher dans le /manage/.

#16

Mis à jour par Valentin Deniaud il y a plus d'un an

Paul Marillonnet a écrit :

Dans l’immédiat, ce qui m’embête un peu est cette impression que l’IdP CSAM, puisqu’apparaissant dans la liste les IdPs déclarés dans les settings mellon (avec un ENTITY_ID:="belgium.be"), va atterrir à la fois en tant qu’authentificateur SAML et en tant qu’authentificateur Fedict dans le /manage/.
Sur la machine d’Imio, les migrations authentic2_auth_saml/migrations/0002_auto_20220608_1559.py et authentic2_auth_fedict/migrations/0002_auto_20220706_1712.py vont toutes deux êtres exécutées

La migration SAML a déjà été exécutée, et aïe tu as raison elle a créé un authentificateur SAML, passé inaperçu et heureusement désactivé car pas de A2_AUTH_SAML_ENABLE.

Il faudrait peut-être faire dépendre la migration de création de l’authentificateur Fedict de celle créant les authentificateurs SAML, ensuite dans la migration Fedict vérifier qu’un authentificateur SAML de même identifiant n’existe pas déjà, et le supprimer au besoin.

Donc ici tu proposes de nettoyer ça au détour de la migration, aller faisons ça.

réduire encore la dépendances aux settings

Oui c'est important de noter qu'ici on a 0 migré la config en base comme dit le titre du ticket, tout reste lu depuis les settings sauf activé/désactivé, ordre, condition d'affichage.

#18

Mis à jour par Valentin Deniaud il y a plus d'un an

Valentin Deniaud a écrit :

Donc ici tu proposes de nettoyer ça au détour de la migration, aller faisons ça.

Bon en testant je me prends forcément des LookupError: No installed app with label 'authentic2_auth_saml' et même si ça pourrait marcher je suis frileux de mixer les choses comme ça, plutôt on corrigera directement sur la db d'IMIO. Pas de modif au patch donc.

#19

Mis à jour par Paul Marillonnet il y a plus d'un an

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

Valentin Deniaud a écrit :

Valentin Deniaud a écrit :

Donc ici tu proposes de nettoyer ça au détour de la migration, aller faisons ça.

Bon en testant je me prends forcément des LookupError: No installed app with label 'authentic2_auth_saml' et même si ça pourrait marcher je suis frileux de mixer les choses comme ça, plutôt on corrigera directement sur la db d'IMIO. Pas de modif au patch donc.

Oui, j’avais complètement zappé le fait que l’authentificateur SAML serait sans doute désactivé par défaut. Pour le reste tout relu et c’est bon pour moi. Ack.

#20

Mis à jour par Valentin Deniaud il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit 86033d32ebd45214a106646562e75956e894ac1c
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Jul 6 17:18:21 2022 +0200

    migrate authenticator to database (#66876)

commit 803d0cb3e55a8022e1643a9bae195bda0688ff2c
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Jul 6 17:02:18 2022 +0200

    misc: move authenticator code to models.py (#66876)
#21

Mis à jour par Frédéric Péters il y a plus d'un an

corrigera directement sur la db d'IMIO

Ça n'est pas réaliste.

#22

Mis à jour par Paul Marillonnet il y a plus d'un an

Frédéric Péters a écrit :

corrigera directement sur la db d'IMIO

Ça n'est pas réaliste.

J’étais parti dans l’idée que l’authentificateur SAML en surplus serait désactivé par défaut, sans aucune incidence sur les écrans de connexion authentic, et qu’on irait ensuite dans le /manage/ le supprimer carrément et l’oublier à jamais. J’oublie un truc ?

#23

Mis à jour par Valentin Deniaud il y a plus d'un an

Paul Marillonnet a écrit :

Frédéric Péters a écrit :

corrigera directement sur la db d'IMIO

Ça n'est pas réaliste.

J’étais parti dans l’idée que l’authentificateur SAML en surplus serait désactivé par défaut, sans aucune incidence sur les écrans de connexion authentic, et qu’on irait ensuite dans le /manage/ le supprimer carrément et l’oublier à jamais. J’oublie un truc ?

Oui ce n'est peut-être pas clair de nos discussions avec Paul mais le bug s'est déjà produit, il est sans rapport avec ce ticket. J'ai créé #67611 pour en discuter.

#24

Mis à jour par Frédéric Péters il y a plus d'un an

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

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF