Projet

Général

Profil

Development #70492

auth_saml, améliorer la présentation des métadonnées

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

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Quand on fournit les métadonnées via le champs texte, le détail du moyen d'authentification affiche un gros bloc XML tout moche.

Piste d'amélioration : avoir un lien « voir les métadonnées », ça ouvre une URL en .xml qu'un navigateur permet de visualiser avec de la coloration syntaxique/de télécharger en faisant Ctrl + S, et en prime on passe un coup de prettyprint en amont.


Fichiers

Révisions associées

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

auth_saml: validate xml metadata (#70492)

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

auth_saml: display xml metadata in separate view (#70492)

Historique

#2

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

0001 en bonus pour valider les métadonnées en amont, le code est copié de la méthode get_entity_id de mellon/adapters.py.

À noter dans 0002, ET.indent est introduit en python 3.9, on supporte encore une version inférieure ?

#3

Mis à jour par Thomas Noël il y a plus d'un an

J'arrive après la bataille mais

ça ouvre une URL en .xml qu'un navigateur permet de visualiser avec de la coloration syntaxique/de télécharger en faisant Ctrl + S

Il faut savoir que cet imbécile de firefox se permet de "corriger" le XML, genre s'amuse à n'afficher aucun attribut xmlns:.. ; même le ctrl-s n'est pas parfaitement égal au fichier original (nettoyage d'espaces et des CRLF, c'est pas méchant, mais quand même).

Bref, c'est pas si méchant, mais il faut le savoir : "voir le xml" dans firefox ne permet pas dire qu'il manque tel ou tel truc, c'est peut-être firefox qui affiche n'importe quoi.

De là, je me dis qu'ajouter une dose supplémentaire de parsing via ElementTree, ça peut encore ajouter le bazar : il serait préférable, selon moi, d'envoyer le contenu de authenticator.metadata "tel quel", pour débusquer le bogue caché tout au fond du xml le jour où.

#4

Mis à jour par Benjamin Dauvergne il y a plus d'un an

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

Valentin Deniaud a écrit :

À noter dans 0002, ET.indent est introduit en python 3.9, on supporte encore une version inférieure ?

Sinon il y a etree.tostring(root, pretty_print=True)) via from lxml import etree qui est disponible partout (et etree.parse n'est pas sensible aux attaques DOS comme ET).

Thomas Noël a écrit :

J'arrive après la bataille mais

ça ouvre une URL en .xml qu'un navigateur permet de visualiser avec de la coloration syntaxique/de télécharger en faisant Ctrl + S

Il faut savoir que cet imbécile de firefox se permet de "corriger" le XML, genre s'amuse à n'afficher aucun attribut xmlns:.. ; même le ctrl-s n'est pas parfaitement égal au fichier original (nettoyage d'espaces et des CRLF, c'est pas méchant, mais quand même).

Ce n'est pas trop gênant, Ctrl+S marche à tous les coups (ou clique droit, enregistrer la cible du lien une page avant), les fichiers de métadonnée ne contiennent aucun texte significatif pouvant être altéré par du formatage (les clés publiques c'est toujours une longue chaîne base64 sans espaces). C'est surtout le copier/coller qui déconne.

#5

Mis à jour par Thomas Noël il y a plus d'un an

Je trouve quand même dommage de ne pas renvoyer directement le contenu de authenticator.metadata tel quel (et comme ça pas de "ET.indent"). Mais bon.

#6

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

À noter dans 0002, ET.indent est introduit en python 3.9, on supporte encore une version inférieure ?

Oui on doit encore gérer buster.

(et oui déjà on a fait n'importe quoi avec la config uwsgi)

#7

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Thomas Noël a écrit :

Je trouve quand même dommage de ne pas renvoyer directement le contenu de authenticator.metadata tel quel (et comme ça pas de "ET.indent"). Mais bon.

Après test chez moi sur /idp/saml2/metadata, on ne voit rien du tout à part le base64 de la clé publique désormais, je pense qu'il faut mettre text/plain et ne pas indenter, ou alors faire une vrai vue et présenter ça dans un

<pre>..</pre>
et ne renvoyer le contenu XML que sur une autre URL avec un paramètre ?raw@ mais bon ça fait déjà beaucoup de boulot pour un truc qui ne sert à rien, jamais j'ai besoin de regarder les métadonnées, je ne sais pas qui fait ça.

#8

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

Après test chez moi sur /idp/saml2/metadata, on ne voit rien du tout à part le base64 de la clé publique désormais

J'ai eu un doute sur "désormais" mais ce patch ne change rien ici; chez moi dernier Firefox affiche correctement (formaté etc. cf capture) et au ctrl-s c'est bien le contenu non modifié qui est enregistré. (chromium pareil) Je serais pour passer un peu de temps à comprendre le comportement de ton navigateur (extensions?) avant de changer/complexifier quoique ce soit.

#9

Mis à jour par Benjamin Dauvergne il y a plus d'un an

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

J'ai eu un doute sur "désormais" mais ce patch ne change rien ici; chez moi dernier Firefox affiche correctement (formaté etc. cf capture) et au ctrl-s c'est bien le contenu non modifié qui est enregistré. (chromium pareil)

Je n'ai jamais dit que le contenu était modifié à la sauvegarde.

Je serais pour passer un peu de temps à comprendre le comportement de ton navigateur (extensions?) avant de changer/complexifier quoique ce soit.

Ok c'est grammalect qui m'a tué. Mais donc le indent est définitivement inutile ici.

#10

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

Je n'ai jamais dit que le contenu était modifié à la sauvegarde.

Mon commentaire était plus global que juste le petit bout que j'ai repris, je parlais de ctrl-s parce que ça avait été également questionné dans #70492#note-3.

#11

Mis à jour par Thomas Noël il y a plus d'un an

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

Après test chez moi sur /idp/saml2/metadata, on ne voit rien du tout à part le base64 de la clé publique désormais

J'ai eu un doute sur "désormais" mais ce patch ne change rien ici; chez moi dernier Firefox affiche correctement (formaté etc. cf capture) et au ctrl-s c'est bien le contenu non modifié qui est enregistré. (chromium pareil) Je serais pour passer un peu de temps à comprendre le comportement de ton navigateur (extensions?) avant de changer/complexifier quoique ce soit.

J'ai testé avant de parler, https://perso.entrouvert.org/~thomas/netscaler-metadata.xml n'est pas le contenu du fichier sur mon public_html qui n'est pas non plus exactement ce qu'on obtient avec ctrl-s. Mais c'est pas grave, on s'en fout un peu.u

Pour ma part j'ai juste besoin de voir les metadonnées afin de vérifier qu'elles sont bien les bonnes (parce que sinon, comment ?). Et au final l'affichage bourrin actuel me va, c'est juste qu'il manque un formatage pre../pre. Télécharger le fichier, pas besoin.

#12

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

J'entends mais « Je serais pour passer un peu de temps à comprendre le comportement de ton navigateur (extensions?) ».

Parce que chez moi, fichier enregistré via ctrl-s vs le fichier d'origine,

 $ md5sum /tmp/netscaler-metadata.xml
251bea090bca66bafcfe98edc0ff12ea  /tmp/netscaler-metadata.xml

 $ ssh leucas.entrouvert.org md5sum ~thomas/public_html/netscaler-metadata.xml
251bea090bca66bafcfe98edc0ff12ea  /home/thomas/public_html/netscaler-metadata.xml
#13

Mis à jour par Benjamin Dauvergne il y a plus d'un an

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

J'entends mais « Je serais pour passer un peu de temps à comprendre le comportement de ton navigateur (extensions?) ».

Parce que chez moi, fichier enregistré via ctrl-s vs le fichier d'origine,

[...]

Pareil que Thomas finalement :

--- netscaler-metadata2.xml    2022-10-20 17:53:08.000000000 +0200
+++ netscaler-metadata.xml    2022-10-21 12:02:09.249648768 +0200
@@ -2,14 +2,14 @@
 <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" ID="#_e1f37d80e77061185c7f579d7b1509db" entityID="https://aaa.dordogne.fr">
     <ds:Signature xmlns:ds="https://www.w3.org/2000/09/xmldsig#">
         <ds:SignedInfo xmlns:ds="https://www.w3.org/2000/09/xmldsig#">
-            <ds:CanonicalizationMethod Algorithm="https://www.w3.org/2001/10/xml-exc-c14n#" />
-            <ds:SignatureMethod Algorithm="https://www.w3.org/2000/09/xmldsig#rsa-sha1" />
+            <ds:CanonicalizationMethod Algorithm="https://www.w3.org/2001/10/xml-exc-c14n#"/>
+            <ds:SignatureMethod Algorithm="https://www.w3.org/2000/09/xmldsig#rsa-sha1"/>

Firefox (sans aucune extension activée) enlève les blancs avant les />, c'est pas bien grave, ça ne casserait même pas une signature XML.

#14

Mis à jour par Thomas Noël il y a plus d'un an

Benjamin Dauvergne a écrit :

Firefox (sans aucune extension activée) enlève les blancs avant les />, c'est pas bien grave, ça ne casserait même pas une signature XML.

Oui, on s'en fout. Ce sur quoi j'insiste cependant c'est de retirer le parsing par ElementTree, il ne sert à rien et pourrait même, au pire, un jour, nous induire en erreur. J'insiste un peu car ça sera le seul moyen simple d'accès aux metadata vraiment utilisées par lasso.

#16

Mis à jour par Benjamin Dauvergne il y a plus d'un an

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

Pas critique, pour vendredi.

#17

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 1144f915b6d1cb12f9c58f4c67de442c1c48c72c
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Thu Oct 20 14:45:25 2022 +0200

    auth_saml: display xml metadata in separate view (#70492)

commit b4c684b68537f81d9462df7b06a05639c24773f0
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Thu Oct 20 16:56:49 2022 +0200

    auth_saml: validate xml metadata (#70492)
#18

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

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

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF