Configurer les attributs subject-id et pairwise-id

Les attributs Subject-ID, sont des attributs SAML normalisés par les consortium OASIS.
Leur but est de simplifier la gestion et la diffusion d'identifiants, et de remplacer les 2 attributs obsolètes eduPersonUniqueID et eduPersonTargetedID. Ils sont au nombre de 2 :

  • subjectId : identifiant unique, opaque, dont la valeur ne change pas, quelque soit le service accédé ;
  • pairwiseId : identifiant unique, opaque, dont la valeur est différente pour chaque service accédé.


Les propriétés de ces attributs sont synthétisées dans le tableau ci-dessous :

Attribut Valeur Ré-assignable Ciblé Sensible à la casse
subjectId idm123456789@univ-xyz.fr non non non
pairwiseId ZTME3TMNBXGYYTIOBYGMY@univ-xyz.fr non oui non
Les indications données ici s'appliquent avec un IdP 4.1 ou supérieur.

La configuration que nous vous proposons est la suivante :

  • subjectId : concaténation d'un attribut de votre annuaire avec le scope de votre IdP
  • pairwiseId : utilisation d'un générateur d'identifiant - sans persistence en base de données - concaténé avec le scope de votre établissement


Avant de configurer, il faut bien identifier quel attribut de votre annuaire peut être utilisé pour le subjectId. Celui-ci doit être :

  • Non réassignable : une valeur donnée ne doit jamais être affectée à un autre utilisateur ;
  • Persistent : il ne changera jamais pour un même utilisateur.

Dans cette fiche technique, nous allons utiliser l'uid.
Sauf paramétrage spécifique de votre IdP, la résolution d'attribut est configurée dans le fichier /opt/shibboleth-idp/conf/attribute-resolver.xml.

/opt/shibboleth-idp/conf/attribute-resolver.xml
<!--
DataConnector for pairwise-id
-->
<DataConnector id="computed" xsi:type="ComputedId"
    excludeResolutionPhases="c14n/attribute"
    generatedAttributeID="computedId"
    salt="%{idp.persistentId.salt}"
    algorithm="%{idp.persistentId.algorithm:SHA}"
    encoding="BASE32">
 
    <InputDataConnector ref="myLDAP" attributeNames="%{idp.persistentId.sourceAttribute}" />
 
</DataConnector>
 
<!-- Schema: SAML Subject ID attributes -->
 
<AttributeDefinition id="samlPairwiseID" xsi:type="Scoped" scope="%{idp.scope}">
    <InputDataConnector ref="computed" attributeNames="computedId" />
</AttributeDefinition>
 
<AttributeDefinition id="samlSubjectID" xsi:type="Scoped" scope="%{idp.scope}">
    <InputAttributeDefinition ref="uid" />
</AttributeDefinition>

L'Attribute Registry est la partie de l'IdP chargé d'encoder les attributs, au format SAML, avant des les transmettre au SP.
Normalement, un IdP 4.1+ est déjà en mesure d'encodes ces attributs. La configuration se situe par défaut dans le fichier /opt/shibboleth-idp/conf/attributes/samlSubject.xml.

La configuration de l'Attribute Filter pour les attributs subject-id est décrite ici.

  • federation/documentation/fiches-techniques/idp/config-idp-saml-subject-id.txt
  • Dernière modification : 2023/04/20 11:17
  • de ludovic.auxepaules@renater.fr