Projet

Général

Profil

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