Gestion automatisée des filtres d’attributs David Verdin Journée Fédération Lundi 24 janvier 2010 30 mars 2017 1
Rappel : le transfert des attributs 30 mars 2017 2
Rappel : le transfert des attributs 30 mars 2017 3
Rappel : le transfert des attributs Attributes-filter.xml 30 mars 2017 4
Rappel : le fichier attributes-filter.xml <AttributeFilterPolicyGroup id="monFiltre" xsi:schemaLocation="urn:mace:shibboleth:2.0:afp classpath:/schema/shibboleth-2.0-afp.xsd urn:mace:shibboleth:2.0:afp:mf:basic classpath:/schema/shibboleth-2.0-afp-mf-basic.xsd urn:mace:shibboleth:2.0:afp:mf:saml classpath:/schema/shibboleth-2.0-afp-mf-saml.xsd"> <AttributeFilterPolicy id= "reglePourTouslesServices" > <PolicyRequirementRule xsi:type="basic:ANY" /> <AttributeRule attributeID="transientId"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> </AttributeFilterPolicy> <AttributeFilterPolicy id="reglePourUnServiceParticulier"> <PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="monId" ignoreCase="true"/> <AttributeRule attributeID="email"> <PermitValueRule xsi:type="basic:ANY"/> </AttributeFilterPolicyGroup> 1 2 "Transmettre systématiquement Le transientId" 3 4 1 2 3 4 "Transmettre l'email au SP identifié par 'monId'" 30 mars 2017 5
Rappel : le fichier attributes-filter.xml <AttributeFilterPolicyGroup id="monFiltre" xsi:schemaLocation="urn:mace:shibboleth:2.0:afp classpath:/schema/shibboleth-2.0-afp.xsd urn:mace:shibboleth:2.0:afp:mf:basic classpath:/schema/shibboleth-2.0-afp-mf-basic.xsd urn:mace:shibboleth:2.0:afp:mf:saml classpath:/schema/shibboleth-2.0-afp-mf-saml.xsd"> <AttributeFilterPolicy id= "reglePourTouslesServices" > <PolicyRequirementRule xsi:type="basic:ANY" /> <AttributeRule attributeID="transientId"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> </AttributeFilterPolicy> <AttributeFilterPolicy id="reglePourUnServiceParticulier"> <PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="monId" ignoreCase="true"/> <AttributeRule attributeID="email"> <DenyValueRule xsi:type="basic:ANY"/> </AttributeFilterPolicyGroup> "Transmettre systématiquement Le transientId" "Ne JAMAIS transmettre l'email au SP identifié par 'monId'" 30 mars 2017 6
Rappel : le fichier attributes-filter.xml <AttributeFilterPolicyGroup id="monFiltre" xsi:schemaLocation="urn:mace:shibboleth:2.0:afp classpath:/schema/shibboleth-2.0-afp.xsd urn:mace:shibboleth:2.0:afp:mf:basic classpath:/schema/shibboleth-2.0-afp-mf-basic.xsd urn:mace:shibboleth:2.0:afp:mf:saml classpath:/schema/shibboleth-2.0-afp-mf-saml.xsd"> <AttributeFilterPolicy id= "reglePourTouslesServices" > <PolicyRequirementRule xsi:type="basic:ANY" /> <AttributeRule attributeID="email"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> </AttributeFilterPolicy> <AttributeFilterPolicy id="reglePourUnServiceParticulier"> <PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="monId" ignoreCase="true"/> <DenyValueRule xsi:type="basic:ANY"/> </AttributeFilterPolicyGroup> "Transmettre systématiquement l'email" "Ne JAMAIS transmettre l'email au SP identifié par 'monId'" 30 mars 2017 7
Gestion manuelle des filtres Mise à jour / création d'un SP Envoi d'un message à tous les gestionnaires d'IdP Mise à jour manuelle du fichier attribute-filters.xml 30 mars 2017 8
Gestion manuelle des filtres Difficultés Format XML non trivial : travail long Le fichier d'attributs peut rapidement grossir (141 SP dans la fédération) Intervention manuelle : risque d'erreur Risque Fichier incorrect Délai de mise à jour Prise en compte arbitraire d'une fraction des SP 30 mars 2017 9
Exemple de non diffusion d'attributs 30 mars 2017 10
Exemple de non diffusion d'attributs Accès refusé Fait apparaître l'architecture de la fédération => incompréhensible Vers qui se tourner ? 30 mars 2017 11
Gestion par inclusion de filtres Il est possible d'importer les filtres d'une source externe Fichier service.xml "Télécharger ce fichier distant" <Service id="shibboleth.AttributeFilterEngine" configurationResourcePollingFrequency="3600000" configurationResourcePollingRetryAttempts="3" xsi:type="attribute-afp:ShibbolethAttributeFilteringEngine"> <ConfigurationResource url="https://services-federation.renater.fr/renater/filtres/renater-attribute-filters-national.xml" xsi:type="resource:FileBackedHttpResource" file="/opt/shibboleth-idp/conf/renater-attribute-filters-national.xml"/> url="https://services-federation.renater.fr/renater/filtres/renater-attribute-filters-community.xml" file="/opt/shibboleth-idp/conf/renater-attribute-filters-community.xml"/> file="/opt/shibboleth-idp/conf/attribute-filter.xml" xsi:type="resource:FilesystemResource" /> </Service> "Archiver localement" "Utiliser ce fichier local" "Le mettre en cache à cet emplacement" 30 mars 2017 12
Gestion par inclusion de filtres : génération automatique Depuis le 4 janvier, des fichiers de filtres sont disponibles sur le site de la fédération Éducation-Recherche https://services-federation.renater.fr/renater/filtres/ Démo d'administration côté SP https://services-federation.renater.fr/gestion?action=get&federation=test&file_id=b77d7ef82cfd2fd2b930 30 mars 2017 13
Mise à jour d'un SP 30 mars 2017 14
Gestion par inclusion de filtres : les filtres disponibles Fichiers générés automatiquement : À partir des attributs déclarés par les SP et validés par les administrateurs de la fédération Regroupés par catégories et par thèmes Renouvelés à chaque mise à jour du SP Définissent l'autorisation de diffusion de tous les attributs demandés par les SP. Nommage : Renater-attribute-filters-<cible>.xml 30 mars 2017 15
Gestion par inclusion de filtres : les filtres disponibles un fichier pour toutes les ressources déclarées : "all" ; des fichiers individuels pour chaque ressource ; un fichier par catégorie de ressource : enseignement à distance outils collaboratifs documentation électronique distribution de logiciels applications métier accès Wi-Fi sites web institutionnels ressources en pré-production un fichier par type de ressource : services nationaux institutionnels services commerciaux communautés nationales ressources locales Recommandé 30 mars 2017 16
Pourquoi utiliser "all" ? Résout tous les problèmes de mise à jour manuelle : Fichier incorrect Délai de mise à jour Prise en compte arbitraire d'une fraction des SP Les demandes d'attributs sont modérées et doivent être justifiées : pas d'abus côté SP Seuls les utilisateurs accédant au service diffusent leurs attributs Vous pouvez toujours restreindre ponctuellement la diffusion : <DenyValueRule/> Pas d'erreur révélant l'architecture de la fédération 30 mars 2017 17
Je vous attribue mes remerciements 30 mars 2017 18