Configurer un IdP capable de transmettre l'Identifiant Étudiant Européen (ESI)
1. Objet
Cette fiche technique décrit comment configurer un fournisseur d'identités (appelé plus succinctement IDP dans la suite de ce document) pour transmettre l'Identifiant Étudiant Européen ou ESI via l'attribut SchacPersonalUniqueCode
, conformément à la spécification en vigueur pour cet identifiant.
Elle est destinée à l'administrateur technique d'un IDP Shibboleth en version 2.3.4 (ou supérieure).
2. Pré-requis
Afin de pouvoir appliquer cette fiche technique, il est au préalable nécessaire que :
- Les attributs supannCodeINE et eduPersonAffiliation soient présents et alimentés dans le référentiel utilisateurs de l'IDP (pour les comptes utilisateur concernés) ;
- Une règle de production pour l'attribut
SchacPersonalUniqueCode
ait été définie au niveau de l'IDP (dans le fichierattribute-resolver.xml
), à l'instar de celle présentée en exemple ci-dessous :
<!-- Définition de l'ESI (attribut schacPersonalUniqueCode) --> <AttributeDefinition id="schacPersonalUniqueCode" xsi:type="Template"> <InputDataConnector ref="myLDAP" attributeNames="supannCodeINE" /> <DisplayName xml:lang="fr">Identifiant Etudiant Européen (ESI)</DisplayName> <DisplayName xml:lang="en">European Student Identifier (ESI)</DisplayName> <Template>urn:schac:personalUniqueCode:int:esi:fr:${supannCodeINE}</Template> <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:schacPersonalUniqueCode" encodeType="false"/> <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.14" friendlyName="schacPersonalUniqueCode" encodeType="false" /> </AttributeDefinition>
3. Configuration d'une politique de transmission adaptée pour l'ESI
3.1 Préambule
Un fournisseur de service (SP) ayant besoin de recevoir l'Identifiant Étudiant Européen (ESI) doit aujourd'hui :
- Demander explicitement l'attribut
schacPersonalUniqueCode
; - Se déclarer conforme à la spécification ESI, c'est-à-dire présenter un tag spécifique dans ses métadonnées signalant que l'attribut
schacPersonalUniqueCode
véhicule une valeur d'ESI.
3.2 Configuration de l'IdP
Afin de garantir une couverture complète côté IdP, il est donc nécessaire de configurer une politique permettant de renvoyer l'ESI à l'ensemble des services labellisés ESI (présentant le tag), tout en laissant la possibilité le cas échéant d'y ajouter des exceptions (services ayant besoin de recevoir l'ESI mais ne disposant pas encore du tag).
Cette approche combinatoire est illustrée par l'exemple ci-dessous (fichier attribute-resolver.xml
):
<!-- Diffusion de l'ESI aux services labellisés ESI ou à des services spécifiés explicitement --> <AttributeFilterPolicy id="ReleaseESItoAnyServices"> <PolicyRequirementRule xsi:type="AND"> <Rule xsi:type="OR"> <!-- Tout SP conforme à la spécification ESI, cad présentant un tag ESI dans ses métadonnées --> <Rule xsi:type="EntityAttributeExactMatch" attributeName="http://macedir.org/entity-category" attributeValue="https://myacademicid.org/entity-categories/esi" /> <!-- ou ce SP en particulier (s'il ne dispose pas du tag) --> <Rule xsi:type="Requester" value="https://test-sp.federation.renater.fr" /> </Rule> <!-- Diffusion uniquement pour la population étudiante --> <Rule xsi:type="Value" attributeID="eduPersonAffiliation" value="student" /> </PolicyRequirementRule> <!-- L'attribut schacPersonalUniqueCode contenant la valeur d'ESI est renvoyé--> <AttributeRule attributeID="schacPersonalUniqueCode"> <PermitValueRule xsi:type="ValueRegex" regex="^urn:schac:personalUniqueCode:int:esi:.*$" /> </AttributeRule> </AttributeFilterPolicy>