Fork du module metarefresh du projet SimpleSAMLPhp (SSP) pour le cas particulier de
la fédération Éducation-Recherche Renater

Ce fork ajouter la gestion des règles de filtrage d'attribut au format Shibboleth.

Il est nécessaire de copier les fichiers du module metarefreshsupann/ dans le
répertoire modules/ de SSP et le fichier supann_name2oid.php dans le répertoire
attributemap/ de SSP.

Dans le fichier config/config.php on configurera les sources de métadonnés de
sorte à lire celles générées par le script metarefresh, comme cela:

 'metadata.sources' => array(
		 array('type' => 'flatfile'),
		 array('type' => 'flatfile', 'directory' => 'metadata/federation/'),
 ),

Dans le fichier de configuration de l'IdP metadata/saml20-idp-hosted.php, on
ajoutera  les clés suivantes (la clé authproc est pensé en fonction de la
configuration par défaut dans config/config.php si vous n'utilitisez pas cette
configuration, il faut penser à activer le module 'core:AttributeLimit').

	'AttributeNameFormat' => 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri'

	'authproc' => array(
		100 => array(                                                                                                                                   
						'class' => 'core:AttributeMap',                                                                                                        
						'name2oid',                                                                                                                            
		),                                                                                                                                             
		101 => array(                                                                                                                                   
						'class' => 'core:AttributeMap',                                                                                                        
						'supann_name2oid',                                                                                                                     
		),    
	)

Pour permettre l'accès aux services nécessitant l'attribut eduPersonTargetedID
ajouter la clé suivante à la clé 'authproc':

		10 => array( # il faut quand même vérifier que userid.attribute = uid dans la configuration                                                    
						'class' => 'core:TargetedID',                                                                                                          
						'attributename' => 'eduPersonTargetedID',                                                                                              
		),      

Finalement il sera possible de charger les métadonnées manuellement via la commande:

	./modules/metarefreshsupann/bin/metarefresh.php \
		--output-dir=metadata/federation/ \
		--shibboleth-afp=https://federation.renater.fr/renater/filtres/renater-attribute-filters-all.xml \
		https://federation.renater.fr/renater/renater-metadata.xml

ou bien l'on pourra utiliser le module cron de SSP via la configuration
suivante dans le fichier config/config-metarefresh.php:

	$config = array( 'sets' => array(

			'renater' => array(
					'cron'      => array('hourly'),
					'sources'   => array(
							array(
									'src' => 'https://federation.renater.fr/renater/renater-metadata.xml',
									'template' => array(
											'tags'  => array('renater'),
									),
							),
					),
					'afps' => array('https://federation.renater.fr/renater/filtres/renater-attribute-filters-all.xml'),
					'expireAfter'       => 60*60*24*4, // Maximum 4 days cache time.
					'outputDir'     => 'metadata/federation/',
					/*
					 * Which output format the metadata should be saved as.
					 * Can be 'flatfile' or 'serialize'. 'flatfile' is the default.
					 */
					'outputFormat' => 'flatfile',
			),
	));

On pourra se référ à la documentation de référence de SSP pour plus de détail
sur la configuration du mode cron ou du module metarefresh:
https://simplesamlphp.org/docs/1.5/simplesamlphp-automated_metadata
