Méta-données et entity categories

Cette extension de méta-données SAML permet d'indiquer l'appartenance d'une entité SAML (IdP ou SP) à des catégories. Cette catégorisation peut permettre de déduire des règles de diffusion d'attributs par un IdP, d'adapter le comportement d'un service de découverte (WAYF), etc. La valeur d'une entity category est une URI et une sémantique lui est associée.

Extraits de méta-données SAML mentionnant des entity categories :

<EntityDescriptor entityID="https://gitlab-dev.in2p3.fr/sp">
  <Extensions>
    <mdrpi:RegistrationInfo registrationAuthority="https://federation.renater.fr/" registrationInstant="2014-09-08T17:43:49Z">
      <mdrpi:RegistrationPolicy xml:lang="en">https://services.renater.fr/federation/en/metadata_registration_practice_statement</mdrpi:RegistrationPolicy>
    </mdrpi:RegistrationInfo>
 
    <mdattr:EntityAttributes>
      <saml:Attribute Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> 
        <saml:AttributeValue>http://www.geant.net/uri/dataprotection-code-of-conduct/v1</saml:AttributeValue>	 
        <saml:AttributeValue>https://federation.renater.fr/category/preprod</saml:AttributeValue>
        <saml:AttributeValue>https://federation.renater.fr/scope/community</saml:AttributeValue>
      </saml:Attribute>
    </mdattr:EntityAttributes>
  </Extensions>
  <EntityDescriptor entityID="https://saml.sys.kth.se/idp/shibboleth">
    <Extensions>
      <mdrpi:RegistrationInfo registrationAuthority="http://www.swamid.se/">
        <mdrpi:RegistrationPolicy xml:lang="en">http://www.swamid.se/download/18.248ad5af12aa8136533800012293/SWAMID+Metadata+Registration+Practice+Statement-20110714.pdf</mdrpi:RegistrationPolicy>
      </mdrpi:RegistrationInfo>
 
      <mdattr:EntityAttributes>
        <saml:Attribute Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
          <saml:AttributeValue>http://refeds.org/category/hide-from-discovery</saml:AttributeValue>
        </saml:Attribute>
      </mdattr:EntityAttributes>
    </Extensions>

Dans le contexte de RENATER et plus globalement de eduGAIN, ces entity categories sont positionnées dans les méta-données par l'organisme publiant ces méta-données. Certaines informations saisies dans le guichet de la fédération RENATER permettent de positionner des entity categories.

Les entity categories positionnées par RENATER

Depuis le guichet de la fédération, l'administrateur d'un SP a la possibilité de se déclarer en conformité avec le Data Protection Code of Conduct :

Dans ce cas, l'entity category http://www.geant.net/uri/dataprotection-code-of-conduct/v1 est associée à ce SP dans les méta-données publiées par RENATER.

Depuis le guichet de la fédération, l'administrateur d'un SP a la possibilité de définir le public concerné par son service et le type de service :

Dans ce cas, des entity categories sont associées à ce SP dans les méta-données publiées par RENATER :

D'autres entity categories

  • hide-from-discovery indique qu'un IdP doit, a priori, être exclus de la liste des IdPs proposés par un service de découverte ;
  • research-and-scholarship indique qu'un SP fournit un service permettant la collaboration ou la gestion à destination de la recherche ou la gestion des étudiants. Les SP éligibles doivent utiliser un ensemble limité d'attributs utilisateur (identifiant, pseudonyme, affiliation).

Automatiser la diffusion d'attributs utilisateurs, en fonction des entity categories

Le problème de contrôle de la diffusion d'attributs utilisateurs se pose aux administrateurs d'IdP. Ils peuvent gérer manuellement leur fichier attribute-filter.xml, mais compte-tenu du nombre de SP disponibles, ce type de gestion n'est pas réaliste.

Avant l'apparition des entity categories, RENATER a mis à disposition des administrateurs d'IdP plusieurs fichiers attribute-filter.xml générés automatiquement en fonction des types de SP et de leur public cible, voir cette documentation.

La version 2.4.0 de l'IdP Shibboleth permet de définir des règles génériques de diffusion d'attributs, en fonction des attributs utilisateurs demandés par un SP et également en fonction de l'appartenance de ce SP à des entity categories.