Project

General

Profile

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

Added by samuel morin about 1 month ago. Updated 25 days ago.

Status:
Résolu
Priority:
Normal
Assigned To:
Start date:
05/25/2020
Due date:
06/12/2020
% Done:

100%

Remaining (hours):

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

Associated revisions

Revision e9f45cd6 (diff)
Added by Joël Cuissinat 25 days ago

Assign index 1 to AttributeConsumingService if missing

Ref: #30187

History

#1 Updated by Bruno Boiget about 1 month ago

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 Updated by Gilles Grandgérard about 1 month ago

  • Tracker changed from Demande to Scénario
  • Start date deleted (05/27/2020)

#3 Updated by Gilles Grandgérard about 1 month ago

  • Due date set to 06/12/2020
  • Target version set to sprint 2020 22-24 Equipe MENSR
  • Start date set to 05/25/2020

#4 Updated by Joël Cuissinat about 1 month ago

  • Assigned To set to Bruno Boiget
  • Release set to EOLE 2.7.1.3
  • Story points set to 1.0

#5 Updated by Joël Cuissinat about 1 month ago

  • Release changed from EOLE 2.7.1.3 to EOLE 2.6.2.2

#6 Updated by Gilles Grandgérard 29 days ago

  • Target version changed from sprint 2020 22-24 Equipe MENSR to sprint 2020 25-27 Equipe MENSR

#7 Updated by Joël Cuissinat 28 days ago

  • Assigned To changed from Bruno Boiget to Joël Cuissinat
  • Parent task set to #30256

#8 Updated by Joël Cuissinat 28 days ago

# dpkg -S saml_utils.py
eole-sso-server: /usr/share/sso/saml_utils.py

#9 Updated by Joël Cuissinat 27 days ago

  • Status changed from Nouveau to 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 Updated by samuel morin 25 days ago

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 Updated by Joël Cuissinat 25 days ago

Merci pour la réponse, nous allons diffuser cette correction pour EOLE >= 2.6.2.

#12 Updated by Joël Cuissinat 25 days ago

  • Status changed from En cours to Résolu
  • % Done changed from 0 to 100

Also available in: Atom PDF