Fédération du SP Shibboleth

Vous allez maintenant valider le bon fonctionnement de votre fournisseur de services dans le cadre de la fédération de test. Il s'agit d'une infrastructure destinée uniquement à des usages de type test.


Afin d'adapter le contenu de cette page avec le nom de votre serveur, saisissez-le ici :

Nom de votre machine :

Vous devez d'abord enregistrer votre fournisseur en le décrivant techniquement auprès de la fédération de test. Les éléments techniques fournis seront publiés dans les méta-données et permettront à votre fournisseur de services d'interagir avec les fournisseurs d'identités.
Le guichet de la fédération vous permet d'effectuer cet enregistrement : https://registry.federation.renater.fr/. Ce formulaire requiert une authentification préalable. Vous pouvez vous authentifier soit avec un compte CRU soit via votre fournisseur d'identités si vous êtes rattaché à un établissement inscrit comme fournisseur d'identités dans la fédération Éducation-Recherche.

Renseignez les différents onglets du formulaire, la signification des champs y est décrite :


  • Onglet Description

Intitulé du service: TP fédération : Service de test monposte.fr
Intitulé du service (en anglais): TP fédération : Service de test monposte.fr
URL du service : https://monposte.fr/secure
Description du SP : TP fédération : Service de test
Description du SP (en anglais) : TP fédération : Service de test

  • Onglet Rattachement à un organisme

Rattachement à un organisme : ne pas renseigner

  • Onglet Contacts

Contact technique 1 nom : votre nom
email : votre email institutionel

  • Onglet Attributs demandés

Pays où les données sont traitées : cocher la case “les données sont traitées en France ou dans un autre pays de l'UE”
Conformité au Data Protection Code of Conduct eduGAIN : ne pas cocher la case “ce service est conforme aux règles du Code of Conduct”
Public(s) concerné(s) par le service : ressource locale
Catégorie du service : outils collaboratifs
Attributs :

  displayName (cocher la bouton radio "obligatoire oui" et remplisser le champs "Quel usage comptez-vous faire de cet attribut" avec "personnalisation" \\
  eduPersonPrincipalName (cocher la bouton radio "obligatoire oui" et remplisser le champs "Quel usage comptez-vous faire de cet attribut" avec "identifiant" \\
  email (cocher la bouton radio "obligatoire oui" et remplisser le champs "Quel usage comptez-vous faire de cet attribut" avec "identifiant" \\
  • Onglet Informations techniques

URL de vos méta données : https://monposte.fr/Shibboleth.sso/Metadata
Les valeurs des autres champs seront automatiquement extraites du fichier de méta-données de votre SP. Il n'est donc pas nécessaire de les renseigner.



Vous devez maintenant rattacher votre SP à la fédération de Test via le guichet.

  • Depuis la page “Gérer vos entités SAML”,
  • cliquez sur le rond noir
  • cliquez sur le lien “Inscription” en face de la Fédération de Test

Votre SP est maintenant dans la Fédération de Test. Un délai peut être nécessaire pour la prise en compte de la dernière version des méta-données de la fédération de Test par les IdPs (30 minutes maximum).

  • Si vous avez besoin plus tard de modifier les informations saisies dans ce formulaire, vous pourrez le faire via le guichet de la fédération https://registry.federation.renater.fr/.
  • l'IdP de Test proposé par RENATER ne prend pas en compte dynamiquement les méta-données de la fédération de Test ; il les recharge les méta-données toutes les 15 minutes. Si vous tentez une authentification trop tôt après l'enregistrement de votre SP dans la Fédération de Test, l'IdP de Test vous renverra une erreur Unable to locate relying party….

Pour fédérer le SP, il faut également supprimer la relation bilatéralee mise en place entre le SP et l'IDP

Afin que votre IDP ne fasse plus confiance directement au SP, il faut supprimer la récupération des méta-données du SP. Comme celui-ci va être fédéré, la confiance passera par les méta-données de la fédération.

/opt/shibboleth-idp/conf/metadata-providers.xml
**<!--**
  <MetadataProvider id="SP-TP"
    xsi:type="FileBackedHTTPMetadataProvider"
    backingFile="%{idp.home}/metadata/sp-tp.xml"
    disregardTLSCertificate="true"
    metadataURL="https://monposte.fr/Shibboleth.sso/Metadata">
  </MetadataProvider>
**-->**

Puis recharger les méta-données de l'IdP :

$> /opt/shibboleth-idp/bin/reload-service.sh -id shibboleth.MetadataResolverService
Configuration reloaded for 'shibboleth.MetadataResolverService'

Les méta-données SAML publiées par RENATER sont signées. Pour pouvoir eur faire pleinement confiance, il faut à présent télécharger le certificat qui permet de vérifier la signature :

$> cd
$> wget https://pub.federation.renater.fr/metadata/certs/renater-metadata-signing-cert-2016.pem
$> sudo cp renater-metadata-signing-cert-2016.pem /etc/shibboleth/

Ensuite on peut remplacer la relation bilatérale, par la confiance la fédération (de test) :

/etc/shibboleth/shibboleth2.xml
<SPConfig ...>
  [...]
  <ApplicationDefaults entityID="https://monposte.fr"
    REMOTE_USER="eppn persistent-id targeted-id"
    cipherSuites="HIGH:!MD5:!RC4:!aNULL">
[...]
      <SSO discoveryProtocol="SAMLDS"
        discoveryURL="**https://discovery.renater.fr/test**">
          SAML2
      </SSO>
      [...]
    <!-- Meta-données de votre IDP -->
    **<!--**
    <MetadataProvider type="XML"
      url="https://monposte.fr/idp/shibboleth"
      backingFilePath="metadata-monposte.fr.xml" reloadInterval="7200">
    </MetadataProvider>
    **-->**
    <!-- Meta-données de la fédération de Test RENATER -->
**    <MetadataProvider type="XML"**
**      url="https://pub.federation.renater.fr/metadata/test/preview/preview-all-renater-test-metadata.xml"**
**      backingFilePath="preview-all-renater-test-metadata.xml" reloadInterval="7200">**
**      <MetadataFilter type="Signature" certificate="renater-metadata-signing-cert-2016.pem"/>**
**    </MetadataProvider>**
    [...]
  [...]
</SPConfig>

Une fois enregistré dans la Fédération de test, et que le SP fait confiance aux méta-données, vous pouvez maintenant essayer d'accéder à votre fournisseur de services sur https://monposte.fr/secure avec un navigateur :

  • Votre fournisseur de services Shibboleth va directement vous rediriger vers le service de découverte (DS/WAYF) déclaré dans le fichier de configuration shibboleth2.xml ;
  • Dans le menu déroulant sélectionnez comme fournisseur d'identités GIP RENATER - IdP de Test ;
  • Authentifiez-vous avec le compte de test (utilisateur: etudiant1, mot de passe: etudiant1) ;
  • Vous êtes redirigé vers votre fournisseur de services qui doit afficher la liste des informations transmises par le SP Shibboleth. Exemple avec le compte de test :
all SHIB headers- (HTTP_SHIB_ATTRIBUTES is not shown in this list)
(REMOTE_USER) etudiant1@renater.fr
...
cnDupont Jean
displayName Jean Dupont
entitlement urn:mace:dir:entitlement:common-lib-terms
eppn etudiant1@renater.fr
facsimileTelephoneNumber 0102030405
givenName Jean
l Paris
mail jean.dupont@univ-test.fr
nickname Jean
o univ-test
org-dn dc=univ-test,dc=fr
orgunit-dn o=maths,dc=univ-test,dc=fr
ou maths
preferredLanguage FR
primary-affiliation student
primary-orgunit-dn o=maths,dc=univ-test,dc=fr
sn Dupont
supannActivite {CNU}5404
supannAutreTelephone 1234567890
...

Vous remarquerez que :

  • la variable REMOTE_USER prend la valeur de l'identifiant institutionnel (aussi appelé eduPersonPrincipalName ou eppn), cf élément ApplicationDefaults/REMOTE_USER de shibboleth2.xml.
  • certaines variables sont préfixées par Shib- ; il s'agit de variables internes positionnées automatiquement par la brique Shibboleth.
  • l'intitulé de chaque variable est paramétrable dans le fichier /etc/shibboleth/attribute-map.xml.


Nativement, Shibboleth propose une fonctionnalité d'affichage de tous les attributs utilisateurs de la session courante. Il suffit d'accéder à l'URL https://monposte.fr/Shibboleth.sso/Session. Pour afficher les valeurs des attributs lors de l'accès à ce script mettez, dans le fichier /etc/shibboleth/shibboleth2.xml l'option suivante à « true » (false par défaut) :

shibboleth2.xml
<Handler type="Session" Location="/Session" **showAttributeValues="true"**/>

Prévoir un redémarrage du service shibd pour la prise en compte des modifications dans le fichier shibboleth2.xml

$> sudo systemctl restart shibd
Dans les version 1.x du SP Shibboleth, ces variables d'environnement étaient, par défaut, préfixées par HTTP_SHIB_ car elles étaient transmises sous formes d'entêtes HTTP.
Si le fournisseur de services ne présente pas tous les attributs de l'utilisateur, vous pouvez en chercher la cause en consultant les logs de votre SP (/var/log/shibboleth/shibd.log)

Erreur « Unknown service provider » : une erreur qui arrive fréquemment (sur la page d'URL de l'IdP). En général elle est due à une différence entre la valeur de entityID déclarée dans les méta-données via le formulaire web et la valeur de l'attribut entityID déclarée dans la configuration shibboleth2.xml. Veillez à ce qu'il n'y ait aucune différence de caractère entre ces deux valeurs (http vs https, sans slash à la fin vs avec slash à la fin, etc.). Si c'est le cas corrigez votre déclaration dans la configuration shibboleth2.xml, relancez le démon shibd, supprimez vos cookies, puis retestez.

Erreur « Unable to locate metadata for identity provider (https://idp.example.org/shibboleth) » : vous avez probablement oublié de commenter l'élément de configuration SSO/entityID dans le fichier shibboleth2.xml par défaut.

  • federation/documentation/guides-installation/sp3/chap05.txt
  • Dernière modification : 2021/04/09 10:49
  • de guillaume.rousse@renater.fr