Projet

Général

Profil

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

Ajouté par samuel morin il y a presque 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
25/05/2020
Echéance:
12/06/2020
% réalisé:

100%

Restant à faire (heures):
0.0

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

Révision e9f45cd6 (diff)
Ajouté par Joël Cuissinat il y a presque 6 ans

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/2020 supprimé

#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.

Formats disponibles : Atom PDF