presentation 18 06 2007
TRANSCRIPT
13 avril 2023 1
Installation d’un fournisseur d’identités Shibboleth
CRU / UNR Paris18 juin 2007, Paris 5
Olivier Salaün, Mehdi Hached, Florent Guilleux
13 avril 2023 2
Programme
• 9h30 : accueil et introduction à Shibboleth
• 10h00 : début des travaux pratiques
• 12h30 : repas
• 14h00 : reprise des travaux pratiques
• 17h00 : conclusion
13 avril 2023 3
Etapes de la formation
1. Installer et configurer un fournisseur d’identités Shibboleth (Identity Provider – IdP)
2. Le tester dans la fédération de test du CRU
3. Connecter le fournisseur d’identités avec un serveur CAS
4. Tester la diffusion d’attributs
13 avril 2023 4
Organisation des travaux pratiques
• En binômes
• Un document détaillant les instructions
• N’hésitez pas à nous demander des précisions ou plus d’explications !
• Au cours de la journée quelques diapos de présentation pour l’ensemble des participants
13 avril 2023 5
Introduction à Shibboleth
13 avril 2023 6
Université A
Copyright SWITCHaai
Avant c’était la zone…• Certaines ressources pas
protégées du tout
• Contrôle d’accès par adresses IP souvent utilisé
• Problèmes de gestion des utilisateurs au niveau de la ressource
• Multiplication des procédures de login
• Multiplication des comptes donc des mots de passe
• Difficultés de mise en place de ressources inter-établissements
Sympa
Moodle
Université C
Moodle
Thèses
Bibliothèque B
Fond docu.
Périodiques
Contrôle d’accès
RessourceGestion utilisateurs
/ Authentification
13 avril 2023 7
Université A
Copyright SWITCHaai
Avec le SSO, c’était un peu mieux
Sympa
Moodle
Université C
Moodle
Thèses
Bibliothèque B
Fond docu.
Périodiques
Contrôle d’accès
RessourceGestion utilisateurs
/ Authentification
13 avril 2023 8
Université A
Copyright SWITCHaai
Avec le SSO, c’était un peu mieux• au niveau
local…
• …mais pareil pour le reste !
Sympa
Moodle
Université C
Moodle
Thèses
Bibliothèque B
Fond docu.
Périodiques
Contrôle d’accès
RessourceGestion utilisateurs
/ Authentification
13 avril 2023 9
Université A
Copyright SWITCHaai
Heureusement, la fédération est arrivée !
Sympa
Moodle
Université C
Moodle
Thèses
Bibliothèque B
Fond docu.
Périodiques
Contrôle d’accès
RessourceGestion utilisateurs
/ Authentification
13 avril 2023 10
Université A
Copyright SWITCHaai
Heureusement, la fédération est arrivée ! • Pas de gestion de
mots de passe des utilisateurs au niveau de la ressource
• L’utilisateur s’authentifie une seule fois, dans son établissement
• L’utilisateur a accès à de nouvelles ressources
• Les ressources ont une plus grande audience
Sympa
Moodle
Université C
Moodle
Thèses
Bibliothèque B
Fond docu.
Périodiques
Contrôle d’accès
RessourceGestion utilisateurs
/ Authentification
13 avril 2023 11
Navigateur
Fournisseurd’identités
(IdP)Fournisseurde services
(SP)
Fonctionnement de Shibboleth : première requête vers un fournisseur de services (SP)
13 avril 2023 12
Navigateur
Fournisseurd’identités
(IdP)Fournisseurde services
(SP)
userId
password
nameIdnameId
nameId
attributes
Fonctionnement de Shibboleth : première requête vers un fournisseur de services (SP)
13 avril 2023 13
Navigateur
Fournisseurd’identités
(IdP)Fournisseurde services
(SP)
1
2
3
4
userId
password
Fonctionnement de Shibboleth : point de vue de l’utilisateur
13 avril 2023 14
Navigateur
Fournisseurd’identités
(IdP)Fournisseurde services
(SP)
Fonctionnement de Shibboleth : requêtes suivantes vers le même fournisseur de services (SP)
13 avril 2023 15
Fournisseurde service
Consommateurd’assertions
Demandeurd’attributs
Contrôleurd’accès
Ressource
Navigateur
Fournisseurd’identités
(IdP)
attributes
nameId
Architecture logique du SP
userId
password
nameIdnameId
attributes
13 avril 2023 16
Fournisseurd’identités
Service d’authentification
Autoritéd’authentification
Autorité d’attributs
Référentielutilisateurs
Based’authentification
nameId
attributes
userId
Consommateurd’assertions
Demandeurd’attributs
Contrôleurd’accès
Ressource
Navigateur
attributes
nameId
nameIdnameId
Architecture logique de l’IdP
userId
password
userId
attributes
13 avril 2023 17
Installation des briques Shibboleth
• Application J2EE – Nécessite Tomcat
• Module d’authentification – Pour Apache
• Filtre ISAPI– Pour IIS
• Version Java– Actuellement en version
bêta
Navigateur
Fournisseurde service
Fournisseurd’identités
13 avril 2023 18
Intégration dans le SId’un fournisseur d’identités
Navigateur
Service d’authentification
Autoritéd’authentification
Autorité d’attributs
Référentielutilisateurs
ServeurSSO
Fournisseurde service
userId
ticket
attributes
userId
nameId
nameId
13 avril 2023 19
Connexion avec le système d’authentification
Navigateur
Service d’authentification
Autoritéd’authentification
Autorité d’attributs
Référentielutilisateurs
ServeurSSO
Fournisseurde service
userId
ticket
attributes
userId
nameId
nameId
• Intégration– Filtre J2EE – Module Apache
• Couplage faible– Champ d’entête
HTTP
13 avril 2023 20
Diffusion d’attributs
13 avril 2023 21
✔ Comment l'IdP accède-t-il aux attributs et les transfère aux SP ?
✔ À quels types de référentiel peut on brancher l'IdP ?
✔ Quels sont les types d'attributs que l'on peut définir ?
✔ Comment définir les règles qui déterminent quelles attributs fournir aux SP ? Quelle politique de fourniture d'attributs établir ?
13 avril 2023 22
Connexion avec le référentiel utilisateurs
Navigateur
Service d’authentification
Autoritéd’authentification
Autorité d’attributs
Référentielutilisateurs
ServeurSSO
Fournisseurde service
userId
ticket
attributes
userId
nameId
nameId
• Des sources multiples– Bases de
données– Annuaires LDAP– Autres sources
13 avril 2023 23
Contrôle de la diffusion des attributs utilisateur
Navigateur
Service d’authentification
Autoritéd’authentification
Autorité d’attributs
Référentielutilisateurs
ServeurSSO
Fournisseurde service
userId
ticket
attributes
userId
nameId
ARP
nameId
• Attribute Release Policy
• Filtrage des attributs par– Fournisseur de
services– Valeur de
l’attribut
13 avril 2023 24
Exemple d’attributs diffusés
Navigateur
Service d’authentification
Autoritéd’authentification
Autorité d’attributs
Référentielutilisateurs
ServeurSSO
Fournisseurde service C
userId
ticket
attributes
userId
nameId
ARP
nameId
• supannOrganisme• eduPersonAffiliation• edupersonPrincipalName• supannRole• mail
Fournisseurde service B
Fournisseurde service A
13 avril 2023 25
Comment est ce que l'IdP accède aux attributs et les transfère aux SP ?
•Les administrateurs de l'IdP définissent les attributs que l'on accepte de relayer aux SP ;•L'IdP Shibboleth s'appuie sur des référentiels utilisateurs externes desquels il déduit les attributs à fournir ;•Ces attributs sont extraits de la base de données grâce à ce que l'on appelle des data connectors il en existe 3 types : JNDI, JDBC et Static;•Les attributs et les data connectors sont définis dans le fichier "reslover.xml" ;
13 avril 2023 26
resolver.xml<AttributeResolver xmlns: ... >
<SimpleAttributeDefinitionid="urn:mace:dir:attribute-def:givenName"><DataConnectorDependency requires="data_base" />
</SimpleAttributeDefinition>
<SimpleAttributeDefinition id="urn:mace:cru.fr:attribute-def:supannOrganisme"><DataConnectorDependency requires="supann-test"/>
</SimpleAttributeDefinition>...
<JDBCDataConnector id="data_base" minResultSet="1" maxResultSet="1" propagateErrors="true"dbURL="jdbc:mysql://database.univ-test.fr/test-shib?user=shibboleth"dbDriver="com.mysql.jdbc.Driver" maxActive="10" maxIdle="5">
<Query>SELECT name AS givenName FROM shibboleth WHERE name=?</Query></JDBCDataConnector>
<JNDIDirectoryDataConnector id="supann-test"> <Search filter="uid=%PRINCIPAL%">
<Controls searchScope="SUBTREE_SCOPE" returningObjects="false" /> </Search>
<Property name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory" /> <Property name="java.naming.provider.url" value="ldap://ldap.cru.fr/ou=people,dc=univ-
test,dc=fr"/></JNDIDirectoryDataConnector>
</AttributeResolver>
13 avril 2023 27
Les différents types d'attributs possibles
•simple attribute definition ;•composite attribute definition ;•regular expression attribute definition ;•scriptlet attribute definition ;•SAML2 persistent ID attribute definition ;
Comment se passe le transfert des attributs vers le SP ?
La requête du SP contient simplement les noms des attributs demandés en se basant sur le champs id contenant obligatoirement une URN dans la balise de définition de l'attribut :
<SimpleAttributeDefinition id="urn:mace:dir:attribute-def:givenName">
13 avril 2023 28
Comment définir les règles qui déterminent quelles attributs fournir aux SP ?
• La politique de fourniture d'attributs se définie dans le fichier arp.site.xml ;
• Un IdP peut accepter de délivrer ou pas des attributs selon les SP :
<Rule><Description>release to anyone</Description>
<Target><AnyTarget/>
</Target>
<Attribute name="urn:mace:dir:attribute-def:eduPersonAffiliation"><AnyValue release="permit"/>
</Attribute></Rule>
13 avril 2023 29
Comment définir les règles qui déterminent quelles attributs fournir aux SP ?
Transfert d'un attribut à tout SP:
<Attribute name="urn:mace:dir:attribute-def:eduPersonPrincipalName"><AnyValue release="Permit">
</Attribute>
Transfert d'un attribut interdit pour un pour une valeur donnée :
<Attribute name="urn:mace:dir:attribute-def:eduPersonScopedAffiliation"><Value release="deny">[email protected]</Value>
</Attribute>
13 avril 2023 30
Quelle politique de fourniture d'attributs établir ?
• Les IdP sont libres de leur politique de fourniture d'attributs, cette politique est définie dans le fichier arp.site.xml ;
• Il est cependant préférable de ne pas multiplier les cas exceptionnels pour rendre cette politique plus facile à administrer et à faire évoluer si nécessaire ;
• Les utilisateurs peuvent eux-mêmes décider de délivrer ou pas certains de leur attributs, des applications graphiques de gestion des attributs par les utilisateurs existe : SHARPE ou ArpViewer
• Page ARP Internet2 : https://spaces.internet2.edu/display/SHIB/IdPARPConfig
13 avril 2023 31
Conclusion
13 avril 2023 32
Mise en production d'un fournisseur d'identités
Installation de Shibboleth Configuration du resolver d'attributs Paramétrage de l'ARP pour chaque
fournisseur de services Définition d'un shibmaster
Enregistrement dans la fédération du CRU Convention puis enregistrement web
13 avril 2023 33
Obligations de la convention
• Utiliser Shibboleth• Utiliser le nommage, la sémantique et les
nomenclatures des attributs de la fédération (basé sur SUPANN) http://federation.cru.fr/cru/frattributs.html
• Documenter le processus d'alimentation des référentiels
• Journalisation des connexions• Assurer une « bonne » disponibilité et sécurité du
service d'authentification et des référentiels
13 avril 2023 34
La fédération du CRU est un cadre technique et organisationnel
• Aspects non couverts : administratifs, financiers, fonctionnels, etc.
• La fédération du CRU n’est pas signataire d’un contrat qui peut lier un fournisseur de services à des fournisseurs d’identités
• Chaque fournisseur est libre de travailler avec les fournisseurs de son choix
13 avril 2023 35
Les membres de la fédération du CRU
• 27 fournisseurs d'identités (établissements d’enseignement supérieur sous tutelle du ministère en charge de l’enseignement supérieur)– Universités, IUFM
• 15 fournisseurs de services (tout type d’institution ou d’entreprise)– Ressources documentaires (ABES, Science Direct, EBSCO)– Ressources UNR (pédagogiques, wi-fi)
• Le CRU : pilotage, administrativia (inscriptions), support aux établissement, information/formation
13 avril 2023 36
A venir...
• IdP par défaut (opéré par le CRU)
• Nouveaux services– Editeurs : Ovid, JSTOR, Cairn– Les UNT (planifié pour UNJF)– Les services du CRU (universalistes,
sourcesup,...)– Groupe logiciel : serveur d'antivirus, intranet– Projet avec les rectorats– Microsoft (MSDN-AA)
13 avril 2023 37
Évolutions de la fédération du CRU
• Passage à Shibboleth 2.0• Extension des attributs reconnus dans la
fédération– Étapes, disciplines, entitlement, ...
• Distribution des ARPs associées à chaque fournisseur de services
• Elargissement du périmètre de la fédération du CRU ?
13 avril 2023 38
Shibboleth 2.0
• Actuellement en version beta• Apports :
– Utilise SAML 2.0– Attribute push (donc cryptage des données)– Fonctionnement multi-tiers– Single logout– Resolver d'attributs au niveau du SP– Changement d'API entre d'IdP et le SSO (IdP
en frontal) ; permet les niveaux d'authentification
13 avril 2023 39
Les applications compatibles
• Tous les pays contribuent– http://wiki.internet2.edu/confluence/display/s
eas
• Contribution du CRU– Sympa, dokuwiki, mod_authSympa, gforge
• Comment « shibboliser » ?– Article du CRU pour JRES, novembre 2007– Formation à la rentrée 2007 ?