====== Metadata-Fede ====== ===== Reference ===== Starting point: https://spaces.internet2.edu/display/SHIB2/Metadata Documentation de la fédération Renater (FR) https://federation.renater.fr/technique/metadata?s[]=metadata Fédération à Deux https://federation.renater.fr/docs/fiches/fedadeux Discussion I had on the shibboleth-users list: https://mail.internet2.edu/wws/arc/shibboleth-users/2009-11/msg00399.html ===== Objectif ===== Notre institut adhère à la [[https://federation.renater.fr/|fédération national Renater]], afin de partager avec la communauté de l'enseignement supérieur et la recherche en France. Pour des usages plus privés (intranets) au sein de [[http://www.institut-telecom.fr|L'Institut Telecom]] nous avons definis en parallele de la fédération Renater une fédération Institut Telecom. Cette page décrit les aspects techniques de la constitution de cette fédération aux travers notament de la définition de metadata . ===== Principes Metadata ===== Metadata = méta-données "in french !" cf [[https://federation.renater.fr/technique/metadata?s|intro]]: "Les méta-données sont un fichier XML signé électroniquement listant tous les fournisseurs d'identités et les ressources de la fédération. Il est utilisé par tous les logiciels de fédération des fournisseurs d'identités et les ressources de la fédération pour se faire mutuellement confiance. " ===== Locations ===== Pour échanger des données et se faire confiance, les briques techniques (IdP & SP) d'une fédération doivent partager un fichier (XML) décrivant chacune de ses briques. Depuis les versions 2.x de shibboleth, il est facile d'accéder aux metadata des briques IdP & SP. * SP: le "handler Metadata" du SP y donne un accès direct en ligne: http://sp.domain.eu/Shibboleth.sso/Metadata * IdP: le fichier idp.metadata.xml est automatiquement constitué à l'installation. $ls -l /opt/shibboleth-idp/metadata/idp-metadata.xml -rw-r--r-- 1 tomcat root 5866 oct 20 2008 /opt/shibboleth-idp/metadata/idp-metadata.xml ===== Structure ===== Afin de constituer un fichier "central" ( a partager entre toutes les acteurs), il suffit de concaténer toutes ces metadata individuels en suivant un certaines terminologie et syntaxe XML . * header xml + description * optionels certificats, PKI * Providers IdP, SP . Au dela de la simple concaténation des idp-metadata.xml + SP (URL.../Metadata) il faut rassembler ces entre 2 balises principales qui constitut l'ensemble des acteurs de la fédération. le tout agrémente de commentaires appropriés, cf exemples ci-dessous ==== Exemple ==== * header * Certificats pour PKI(optionel) MIIH4TCCBcmgAwIBAgIJAIQtSXlZWjxSMA0GCSqGSIb3DQEBBQUAMGcxPTA7BgNV ... bgCBc+s= MIIHkzCCBXugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBnMT0wOwYDVQQDEzRJbnN0 ... zmLouQa8jrPeNp8JDTPgTp2GvXyH6Rw= MIIHrDCCBZSgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzE+MDwGA1UEAxM1SW5z ... dIN5iWlZyevQ1wnf1V1gLoGwYfKZnBgHx++2gbzSCXcOSmGefB+Xy2+TM6VrrFRg * IdP it-sudparis.eu MIIDSDCCAjCgAwIBAgIVAJv2l61sKf1VgzgHPgGRdmvIdBeGMA0GCSqGSIb3DQEB ... SA354+sPezlzSyImVbYaHH6naLQuFV7cmUNPOQ== urn:mace:shibboleth:1.0:nameIdentifier urn:oasis:names:tc:SAML:2.0:nameid-format:transient it-sudparis.eu MIIDSDCCAjCgAwIBAgIVAJv2l61sKf1VgzgHPgGRdmvIdBeGMA0GCSqGSIb3DQEB ... SA354+sPezlzSyImVbYaHH6naLQuFV7cmUNPOQ== urn:mace:shibboleth:1.0:nameIdentifier urn:oasis:names:tc:SAML:2.0:nameid-format:transient Puis décalration des autres IDP de la fédération "privée", il s'agit du même enchainement de metadata d'IdP (idp-metadata.xml) comprit dans des balises ... * SP enfin on déclare les SP, en ajoutant les metadata recuperées par l'URL d'acces (exemple http://sp.domain.eu/Shibboleth.sso/Metadata) MIIDCTCCAfGgAwIBAgIJAKkJ5YK4FZlHMA0GCSqGSIb3DQEBBQUA MCExHzAdBgNV ... 9lpUQ1jyqa6GVpntdg== urn:mace:shibboleth:1.0:nameIdentifier Procaccia jehan.procaccia@it-sudparis.eu ... Attention, bien fermer la fin du fichier XML des metadata par un . Attention également a la façon dont sont téléchargés les metadata des SP, suivant qu'il le sont en http ou https, les diffrentes "Locations" contenu dans les metadata du SP en seront affecté, cf la discussion que j'ai eu a ce sujet sur la liste shibboleth-users: https://mail.internet2.edu/wws/arc/shibboleth-users/2009-11/msg00399.html ===== Distribution ===== Pour l'instant un simple "wget" du fichier (metadata.it.xml) sur chacun des acteurs. A completer par une mise a jour automatique sur les SP, les IdP se chargeant déjà d'une mise à jour automatique (déclaration d'une URL dans relying-party.xml). Il faudra aussi signer ce fichier !, à completer .... ===== Chargement ===== ==== IdP ==== Sur les IdP, il faut declarer les sources de metadata dans "relying-party.xml", le "type=ChainingMetadataProvider" permet de participer à plusieurs fédération, dans l'exemple ci-dessous 3 fédé => Renater, Renater-test, IT: samlmd:SPSSODescriptor samlmd:SPSSODescriptor <--! for signed Metadata files --> /opt/shibboleth-idp/credentials/idp.key /opt/shibboleth-idp/credentials/idp.crt /opt/shibboleth-idp/credentials/federation.cru.fr.crt /opt/shibboleth-idp/credentials/metadata-federation-renater.crt ==== SP ==== Sur le SP c'est le fichier shibboleth2.xml qui declare les metadata a charger, Sur l'exemple ci-dessous, seule la fédé IT est chargée: