Development #66876
migrer FedictAuthenticator et sa config en base
0%
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).
Files
Related issues
Associated revisions
migrate authenticator to database (#66876)
History
Updated by Paul Marillonnet 11 months ago
- Related to Development #66853: virer authentic2.authenticators added
Updated by Paul Marillonnet 11 months ago
- Related to Development #65483: configuration des méthodes d'authentification, SAML added
Updated by Valentin Deniaud 11 months ago
- File 0001-misc-move-authenticator-code-to-models.py-66876.patch 0001-misc-move-authenticator-code-to-models.py-66876.patch added
- File 0002-migrate-authenticator-to-database-66876.patch 0002-migrate-authenticator-to-database-66876.patch added
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
Updated by Valentin Deniaud 11 months ago
- Related to Development #67103: authenticators, éviter la modification du nom d'un block de login added
Updated by Valentin Deniaud 11 months ago
- Blocks Development #65479: configuration de l'ordre des méthodes d'authentification added
Updated by Paul Marillonnet 10 months ago
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.
Updated by Frédéric Péters 10 months ago
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.
Updated by Paul Marillonnet 10 months ago
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.
Updated by Paul Marillonnet 10 months ago
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/.
Updated by Valentin Deniaud 10 months ago
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 migrationsauthentic2_auth_saml/migrations/0002_auto_20220608_1559.py
etauthentic2_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.
Updated by Valentin Deniaud 10 months ago
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.
Updated by Paul Marillonnet 10 months ago
- Status changed from Solution proposée to 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.
Updated by Valentin Deniaud 10 months ago
- Status changed from Solution validée to 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)
Updated by Frédéric Péters 10 months ago
corrigera directement sur la db d'IMIO
Ça n'est pas réaliste.
Updated by Paul Marillonnet 10 months ago
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 ?
Updated by Valentin Deniaud 10 months ago
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.
Updated by Frédéric Péters 10 months ago
- Status changed from Résolu (à déployer) to Solution déployée
misc: move authenticator code to models.py (#66876)