Fédération SAML entre Seshat et vos Scribes¶
EN COURS DE REDACTION, NE PAS UTILISER CE GUIDE POUR LE MOMENT
Nous allons expliquer comment mettre en oeuvre une fédération SAML entre Seshat et les Scribes d'établissements.
Rappel:- FI: Fournisseur d'Identité (Seshat ici)
- FS: Fournisseur de Services
Sur Seshat¶
Nous allons dans un premier temps sur Seshat définir un filtre d'application (envole_saml_apps) , qui permettra de renvoyer un ensemble d'attributs de fédération lorsque le service demandeur sera un scribe.Dans le filtre suivant, nous faisons comme hypothèse que
- Le service EoleSSO des Scribes est sur le port 8443
NOTE: Il vous appartient de changer ce port si vos scribes n'écoutent pas sur le 8443.
/usr/share/sso/app_filters/envole_saml_apps.ini
-
[envole_saml]
port=8443
baseurl=/saml/acs
scheme=https
addr=0/0
typeaddr=ip
filter=envole_saml
Il est possible d'affiner ce filtre d'application,Prenons pas exemple la configuration de la Réunion
- Tous les collèges ont pour DNS: portail.college-XXXX.re
- Tous les lycées ont pour DNS: portail.ZZZZ.ac-reunion.fr
[lycees_saml]
port=8443
baseurl=/saml/acs
scheme=https
addr=^portail.*.ac-reunion.fr$
typeaddr=regex
filter=envole_saml
[colleges_saml]
port=8443
baseurl=/saml/acs
scheme=https
addr=^portail.college.*.re$
typeaddr=regex
filter=envole_saml
Bref l'idée étant de trouver un dénominateur commun a tous vos scribes et d'essayer d'en faire un filtre qui soit le plus cibler possible afin d'éviter que cela ne vienne perturber la fédération avec vos autres FS
Configuration du jeu d'attributs a envoyer
/usr/share/sso/app_filters/envole_saml.ini
-
[utilisateur]
vecteur=RUNENTPersonJointure
RUNENTPersonJointure
est l'attribut calculé (fourni par le paquet eole-dispatcher) qui va permettre de déterminer le intid (attribut de fédération) qui sera a envoyer vers le Scribe dans la requête SAML.
Sur Scribe¶
attribute_sets/associations.ini
Ajouter une section, pour votre FI (Seshat)
[sp_ident_de_votre_seshat]
attribute_set = envole_set
sp_ident_de_votre_seshat: Est l'identité de votre seshat, il se trouve dans les métadata du Seshat
(Balise <EntityDescriptor> attribut entityID )
attribute_sets/envole_set.ini
[user_attrs]
vecteur = intid