Utilisation de plusieurs sources de meta-données

Le chaînage de méta-données, permet d'agréger dans la configuration Shibbleth (SP et IDP) plusieurs fichiers de méta-données.

1. Configurer un IDP pour utiliser plusieurs sources de méta-données

Il est nécessaire de configurer un IDP pour utiliser plusieurs sources de méta-données dans les cas suivants :

  • IDP inscrit dans plusieurs fédérations (FER et eduGAIN)
  • IDP inscrit dans une fédération, et ayant également 1 ou plusieurs relations bilatérales

IDP v3.x/4.x

Documentation de référence : https://shibboleth.atlassian.net/wiki/spaces/IDP4/pages/1265631636/ChainingMetadataProvider
Dans l'IDP 3+, la configuration des metadata se fait dans le fichier metadata-providers.xml. Par défaut, la première balise MetadataProvider est de type ChainingMetadataProvider.
Pour chaîner des metadonnées, il suffit donc de positionner autant de blocs MetadataProvider que nécessaire dans la balise MetadataProvider de plus haut niveau.
Exemple :

metadataproviders.xml
<MetadataProvider id="ShibbolethMetadata" xsi:type="ChainingMetadataProvider" ...>
  <!-- Metadonnees de la fédération de test -->
  <MetadataProvider
    id="RenaterTestMetadata"
    xsi:type="FileBackedHTTPMetadataProvider"
    backingFile="%{idp.home}/metadata/preview-sps-test-metadata.xml"
    metadataURL="https://pub.federation.renater.fr/metadata/test/preview/preview-sps-test-metadata.xml">
 
    <MetadataFilter xsi:type="SignatureValidation" requireSignedRoot="true" certificateFile="%{idp.home}/credentials/renater-metadata-signing-cert-2016.pem"></MetadataFilter>
 
  </MetadataProvider>
  <!-- Relation bilatérale -->
  <MetadataProvider id="IOP" xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/iop-metadata.xml"/>
 
</MetadataProvider>

2. Configurer un contexte applicatif d'un SP pour utiliser plusieurs sources de méta-données

Il est nécessaire de configurer un SP pour utiliser plusieurs sources de méta-données dans les cas suivants :

  • SP inscrit dans une fédération, mais autorisant les comptes CRU
  • SP inscrit dans plusieurs fédérations
  • SP inscrit dans une fédération, et ayant également 1 ou plusieurs relations bilatérales

Pour les 2 derniers cas, il faut penser à avoir un WAYF permettant de lister tous les IDPs de toutes les metadata.

SP v3.x

Dans le fichier shibboleth2.xml vous pouvez également déclarer un MetadataProvider de type “Chaining” :

shibboleth2.xml
<MetadataProvider type="Chaining">
 
  <!-- Meta-donnees de la federation Education-Recherche -->
  <MetadataProvider type="XML" url="https://pub.federation.renater.fr/metadata/renater/main/main-all-renater-metadata.xml"
    backingFilePath="/etc/shibboleth/main-all-renater-metadata.xml" reloadInterval="7200">
      <SignatureMetadataFilter certificate="/etc/shibboleth/renater-metadata-signing-cert-2016.pem"/>
  </MetadataProvider>
 
  <!-- Meta-donnees des comptes CRU -->
  <MetadataProvider type="XML"
      url="https://cru.renater.fr/idp/shibboleth"
      backingFilePath="/var/cache/shibboleth/sac-metadata.xml"
      reloadInterval="7200">
  </MetadataProvider>
</MetadataProvider>