Projet

Général

Profil

eole-dispatcher

Pré-requis

eole-dispatcher est une application qui permet de rediriger l'utilisateur sur son portail (Envole) établissement.
Il est prévu également pour gérer le cas de la multi-affectation pour les enseignants et les parents.

Ainsi un enseignant qui auraient des services sur plusieurs établissements se verraient proposer le choix de l'établissement sur lequel il souhaite se connecter.
De même pour un parent d'élève qui aurait plusieurs enfants dans des établissements différents se choix lui sera proposé

Il est à noté que la problématique de la multi-affectation pour un élève ne se pose pas, puisque ce dernier ne peut pas être scolarisé dans deux établissements

Je parlerais ici du terme affectation au sens large, une affectation est pour moi (dans ce document) l'appartenance, d'une personne à un établissement.

Je souligne également que dans ce scénario d'authentification, il est nécessaire de mettre en place la fédération de Seshat vers FIM-AGENT et FIM-TS, si l'on souhaite utiliser Seshat comme seul portail d'authentification

eole-dispatcher est capable (au travers de ces filtres d'attributs) de gérer les sources d'authentification suivantes :
  • LDAP Académique pour les agents de l'éducation National
  • LDAP Téléservices pour les parents et élèves
  • LDAP local (Réplicat des scribes) pour l’authentification des élèves et parents (si les téléservices ne sont pas déployés)

Fonctionnement

Le dispatcher est a installer sur seshat, afin d'utiliser le portail EoleSSO de seshat comme portail unique d'authentification vers les ENT (Envole)
L'installation du dispatcher va mettre en place sur le serveur sso les filtres d'attributs nécessaires afin de rediriger correctement la personne

/usr/share/sso/app_filters/dispatcher.ini

[user]
rne=ecs_rne
user=uid
uid=uid
source=SourceAuth
FederationKey=DispatcherKey
displayName=displayName
profils=DispatcherProfils
auth=auth

l'attribut calculé ecs_rne, va permettre de récupérer les codes rne en fonction des établissement d'affectation de la personne.

Lors de la connexion d'une personne eole-dispatcher va prendre tous les RNE reçu de EoleSSO et présenter tous les liens de fédération pour l'accès aux portails Envole lui concernant.
Une Url de fédération ressemble à cela

https://seshat.ac-academie.fr/saml?sp_ident=<id_fs>&RelayState=https://<URL_DU_PORTAIL_ETABLISSEMENT>
A la vue de cette url, plusieurs questions se posent
  1. Comment eole-dispatcher récupère le id_fs pour un rne donné
  2. Comment eole-dispatcher récupère l' URL_DU_PORTAIL_ETABLISSEMENT pour un rne donné

id_fs

D'après la documentation http://eoleng.ac-dijon.fr/documentations/2.3/partielles/PDF/EoleSSO.pdf (Chapitre 4, page 27)

id_fs est soit l'identifiant du fournisseur de service (entityID tel que défini dans son fichier de méta
données), soit le nom de son fichier de méta données placé dans /usr/share/sso/metadata (sans l'extension
.xml).

Nous avons donc fait le choix (par simplicité) de nommer le fichier metadata de nos entités partenaires (Serveur Scribe des établissements) par <rne>.xml
du coup le id_fs n'est ??? c'est le code rne de l'établissement

URL_DU_PORTAIL_ETABLISSEMENT

EoleSSO, va générer a chaque redémarrage du serveur eole-sso un fichier dans edispatcher/utils/etabs.ini qui va contenir les entrées nécessaires pour chaque établissement

[9740091F]
libelle = COLLEGE LECONTE DE LISLE
portail = https://portail.college-lecontedelisle.re
...

Ces entrées sont récupérées de Zephir, il est donc nécessaire que les serveurs Scribe soient enregistrés sur Zephir; Si ce n'est pas le cas, il vous faudra générer ce fichier à la main.

aucun portail trouvé

Le message d'erreur s'affiche

cela signifie que dans votre edispatcher/utils/etabs.ini il n'y a pas de section pour le code Rne

Différents portails pour Arena en fonction de la zone

Comme je l'avais mentionné plus haut, eole-dispatcher est utilisé chez nous comme portail d'authentification unique, également pour l'accès aux portail Arena
Hors, la ou cela se complique, c'est qu'il peut y avoir plusieurs portails en fonction de l'endroit où se trouve l'utilisateur, par exemple dans l'académie de la Réunion
il existe au moins trois portails d'accès aux application Arena :

  • portail.ac-reunion.fr (accessibles en externe)
  • scoens.ac-reunion.fr (depuis le réseau pédagogique des établissements)
  • scoweb.ac-reunion.fr (depuis le réseau administratif)

chaque portail en fonction de sa zone de confinement ne présentera pas les mêmes ressources, et l'obligation d'une clef OTP sera différente

Exemple
scoweb.ac-reunion.fr , offre accès a la ressource SIECLE , tandis que portail.ac-reunion non

il faut donc permettre aux utilisateurs d'être sur le bon portail en fonction de la zone ou ils se trouvent,
le dispatcher le permet..

En effet, une fonction (GetPortailHost) dans le fichier edispatcher/inc.php permet en fonction de l'adresse IP du client de redirigé vers le bon portail
Ces différentes association <RESEAU>/<PORTAIL> est définie dans utils/portails.ini

Un exemple d'utilisation de ce fichier est présent dans utils/portails.ini.sample


[172.16.0.0]
mask=13
portail="scoens.ac-reunion.fr"
arena="rev-proxy-peda"
[172.31.190.64]
mask=26
portail="portail.ac-reunion.fr"
arena="rev-proxy-id"
[172.31.16.0]
mask=16
portail="portail.ac-reunion.fr"
arena="rev-proxy-id"
[10.205.0.0]
mask=16
portail="scoweb.ac-reunion.fr"
arena="rev-proxy-agr"

Dans cet exemple tout utilisateur avec une adresse IP dans le réseau 10.205.0.0/16 , se verra présenter l'url du portail académique sera https://scoweb.ac-reunion.fr
La variable arena, permet de spécifier la zone cleartrust associée au portail (Utilisé si vous souhaitez intégrer les ressources Arena dans le bureau Envole : https://envole.ac-dijon.fr/wordpress/2014/02/19/integration-de-arena-dans-le-bureau-envole

La récupération de l'IP du client se base sur le champ HTTP_X_FORWARDED_FOR des headers http

edispatcher_erreur_portail.png Voir (8,35 ko) Christophe LEON, 25/09/2013 09:26