Tâche #30187
Distribution EOLE - Scénario #30256: Traitement express MEN (25-27)
problème de valeurs au chargement de fichiers de métadonnées
100%
Description
Bonjour
En configurant Eole-SSO comme fournisseur d'identité pour une solution de travail collaboratif (OnlyOffice), il s'avère que cette plateforme n'inclus par par défaut "index" et "isDefault" dans son fichier de métadonnées :
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://rectorat.oo.pp.ac-dijon.fr/sso/metadata">
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://rectorat.oo.pp.ac-dijon.fr/sso/slo/callback"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://rectorat.oo.pp.ac-dijon.fr/sso/slo/callback"/>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://rectorat.oo.pp.ac-dijon.fr/sso/acs" index="0"/>
<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://rectorat.oo.pp.ac-dijon.fr/sso/acs" index="1"/>
<AttributeConsumingService>
<RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
<RequestedAttribute FriendlyName="givenName" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
<RequestedAttribute FriendlyName="sn" Name="urn:oid:2.5.4.4" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
<RequestedAttribute FriendlyName="mobile" Name="urn:oid:0.9.2342.19200300.100.1.41" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
<RequestedAttribute FriendlyName="title" Name="urn:oid:2.5.4.12" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
<RequestedAttribute FriendlyName="l" Name="urn:oid:2.5.4.7" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
</AttributeConsumingService>
</SPSSODescriptor>
</EntityDescriptor>
Cela se manifeste pas l'erreur suivante au moment de relancer le service eole-sso :
"Erreur de récupération des metadonnées SAML pour rectorat-oo-pp : (int() argument must be a string or a number, not 'NoneType')"
En modifiant la balise AttributeConsumingService, le service se lance correctement :
<AttributeConsumingService index="1" isDefault="true">
Même si cet attribut est normalement requis par la norme (https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf), cela est assez surprenant pour l'utilisateur :
serait-il possible soit de considérer une valeur par défaut pour l'attribut, soit de produire un message d'erreur plus explicite ?
Merci
Guillaume Laville et Samuel Morin
Révisions associées
Assign index 1 to AttributeConsumingService if missing
Ref: #30187
Historique
#1 Mis à jour par Bruno Boiget il y a presque 6 ans
On peut effectivement envisager une des 2 solutions.
Soit considérer qu'il n'y a qu'un seul AttributeConsumingService si l'index n'est pas spécifié et lui attribuer un index de 1
Soit déclencher une exception avec un message clair au chargement si l'index manque
Dans les 2 cas, la correction serait à faire dans la fonction get_metadata de saml_utils.py :
for attr_serv in find_tag(desc_node, 'AttributeConsumingService'):
index = attr_serv.get('index') --> remonter une erreur ou remplacer par attr_serv.get('index', 1)#2 Mis à jour par Gilles Grandgérard il y a presque 6 ans
- Tracker changé de Demande à Scénario
- Début
27/05/2020supprimé
#3 Mis à jour par Gilles Grandgérard il y a presque 6 ans
- Echéance mis à 12/06/2020
- Version cible mis à sprint 2020 22-24 Equipe MENSR
- Début mis à 25/05/2020
#4 Mis à jour par Joël Cuissinat il y a presque 6 ans
- Assigné à mis à Bruno Boiget
- Release mis à EOLE 2.7.1.3
- Points de scénarios mis à 1.0
#5 Mis à jour par Joël Cuissinat il y a presque 6 ans
- Release changé de EOLE 2.7.1.3 à EOLE 2.6.2.2
#6 Mis à jour par Gilles Grandgérard il y a presque 6 ans
- Version cible changé de sprint 2020 22-24 Equipe MENSR à sprint 2020 25-27 Equipe MENSR
#7 Mis à jour par Joël Cuissinat il y a presque 6 ans
- Assigné à changé de Bruno Boiget à Joël Cuissinat
- Tâche parente mis à #30256
#8 Mis à jour par Joël Cuissinat il y a presque 6 ans
# dpkg -S saml_utils.py eole-sso-server: /usr/share/sso/saml_utils.py
#9 Mis à jour par Joël Cuissinat il y a presque 6 ans
- Statut changé de Nouveau à En cours
Est-ce que la proposition de Bruno (attribution d'un index de 1 si il n'est pas spécifié) vous convient ?
Si oui, sur quelle version d'EOLE avez-vous impérativement besoin de cette modification ?
#10 Mis à jour par samuel morin il y a presque 6 ans
oui la proposition d'attribuer un index à 1 conviendrait.
Notre seshat est en 2.7 mais peut-être cela pourrait-être intéressant de le proposer sur la 2.6 également.
Merci
#11 Mis à jour par Joël Cuissinat il y a presque 6 ans
Merci pour la réponse, nous allons diffuser cette correction pour EOLE >= 2.6.2.
#12 Mis à jour par Joël Cuissinat il y a presque 6 ans
- Statut changé de En cours à Résolu
- % réalisé changé de 0 à 100
#13 Mis à jour par Joël Cuissinat il y a plus de 5 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0
Paquets diffusés le 01/07/2020.