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 :
1. Enregistrement dans la fédération de test
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 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…
.
2. Suppression de la relation bilatérale
Pour fédérer le SP, il faut également supprimer la relation bilatéralee mise en place entre le SP et l'IDP
2.1 Modification de la configuration de 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'
2.2 Modification de la configuration du SP
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>
3. Test dans la fédération de test
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
oueppn
), cf élémentApplicationDefaults/REMOTE_USER
deshibboleth2.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
HTTP_SHIB_
car elles étaient transmises sous formes d'entêtes HTTP.
/var/log/shibboleth/shibd.log
)
3.1 Erreurs courantes
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.