Application de redirection : Eole-dispatcher

Dans le cadre de l'utilisation du module Seshat en tant que point d'entrée d'un ENT centralisé, l'application Eole-dispatcher permet de rediriger les utilisateurs vers leur établissement d'origine. Elle se base sur les informations remontées lors de la mise en place de la réplication des serveurs Scribe.

Elle est également prévue pour gérer le cas de l'affectation multiple pour les enseignants et les responsables :

  • un enseignant qui aurait des services sur plusieurs établissements se verrait proposer le choix de l'établissement sur lequel il souhaite se connecter ;

  • un parent d'élève qui aurait plusieurs enfants dans des établissements différents se verrait également proposer le choix de l'établissement. Il est à noter que la problématique de la l'affectation multiple pour un élève ne se pose pas, puisque ce dernier ne peut pas être scolarisé dans deux établissements.

Eole-dispatcher est capable (au travers de ses filtres d'attributs) de gérer les sources d'authentification suivantes :

  • LDAP Académique pour les agents de l'Éducation nationale ;

  • LDAP Téléservices pour les parents et élèves ;

  • LDAP local (réplicat des serveurs Scribe) pour l'authentification des élèves et parents (si les téléservices ne sont pas déployés).

Remarque

Le terme affectation est à prendre au sens large, il désigne l'appartenance d'une personne à un établissement.

Pré-requis

Cette application nécessite :

  • la mise en place de la réplication LDAP des serveurs Scribe sur le serveur Seshat ;

  • l'alimentation des annuaires des serveurs Scribe avec des extractions AAF EXCLUSIVEMENT ;

  • la bonne saisie des numéros et libellés établissement sur les serveurs Scribe et Zéphir ;

  • la configuration d'une fédération entre chaque serveur Scribe et le serveur Seshat (voir documentation EoleSSO au chapitre : Fédération entre 2 serveurs EoleSSO).

Installation

Le dispatcher est à installer sur le module Seshat, afin d'utiliser son portail EoleSSO comme portail unique d'authentification vers les ENT (Envole).

L'application n'est pas installée par défaut. Via l'interface de configuration du module, configurer le serveur pour recevoir les applications web :

  • en mode normal dans l'onglet Services, passer Activer le serveur web Apache à oui ;

  • dans l'onglet Applications web, saisissez le nom de domaine des applications web dans Nom de domaine des applications web (sans http://);

  • enregistrer la configuration et quitter l'interface de configuration du module.

Puis saisir les commandes suivantes sur le module Seshat pour installer le paquet eole-dispatcher :

# Query-Auto

# apt-eole install eole-dispatcher

Configuration

Une fois les paquets installés, il faut de nouveau se rendre dans l'onglet Application web de l'interface de configuration du module et passer Activation de la redirection vers les portails ENT à oui. Des paramètres supplémentaires s'affichent.

  • Rediriger en automatique si un seul ENT ;

  • Proposer le PIA aux professeurs : permet de proposer le portail académique aux enseignants ;

  • RNE du Portail académique (PIA) : permet de saisir l'UAI du portail académique ;

  • Portail académique (PIA) : portail sur lequel seront redirigés les personnels académiques ;

  • Portail par défaut : adresse du site Internet dédié à l'ENT si aucun portail d'établissement n'est disponible pour l'utilisateur ;

  • webService Arena : URL complète du webService ARENA pour la récupération des ressources ;

  • Zone par défaut pour le webService Arena : zone par défaut du portail ARENA.

Il est possible de changer ou de désactiver le thème.

Une fois l'application paramétrée, il est nécessaire de reconfigurer le serveur à l'aide de la commande reconfigure.

Une fois le serveur reconfiguré, l'application est accessible à l'adresse : http://<adresse_serveur>/edispatcher/

Truc & astuce

Il est possible de rendre l'application directement accessible depuis l'adresse http://<adresse_serveur>/, en renseignant /edispatcher en tant qu'Application web par défaut (redirection) dans la famille Applications web

Fonctionnement

L'installation du dispatcher va mettre en place sur le serveur SSO les filtres d'attributs nécessaires afin de rediriger correctement la personne.

Extrait du fichier /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 établissements d'affectation de l'utilisateur.

Lors de la connexion d'une personne, Eole-dispatcher va prendre tous les RNE reçus de EoleSSO et présenter tous les liens de fédération pour l'accès aux portails Envole le concernant.

ExempleExemple d'URL de fédération

 https://<domaineSeshatSSO>/saml?sp_ident=<id_fs>&RelayState=https://<URL_du_portail_Établissement>

Cette URL effectue une fédération vers le fournisseur de service <id_fs> et redirige vers l'<URL_du_portail_Établissement> du client en fournissant un identifiant de session.

Eole-dispatcher et EoleSSO

RNE : id_fs

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).

Par simplicité il est possible de nommer le fichier metadata de nos entités partenaires (Serveur Scribe des établissements) par <RNE>.xml ; id_fs est alors le code RNE de l'établissement.

Libellé et adresse du portail des établissements : URL_du_portail_Établissement

EoleSSO va générer automatiquement, à chaque redémarrage du service eole-sso, un fichier dans /var/www/html/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 depuis Zéphir, il est donc nécessaire que les serveurs Scribe soient enregistrés sur le serveur Zéphir. Dans le cas contraire, ou si des informations sont incorrectes ou manquantes, il faudra remplir ce fichier à la main (voir le chapitre : Gestion des sources d'authentification multiples).

Vous pouvez vous baser sur le fichier d'exemple : /var/www/html/edispatcher/utils/etabs.ini.sample.

Truc & astuceMessage d'erreur : aucun portail trouvé

Il manque une section pour le code RNE dans le fichier /var/www/html/edispatcher/utils/etabs.ini.

Description de liens vers des applications web ou vers des portails.

Fichier /var/www/html/edispatcher/applications.ini :

  • Format des sections :

[<identifiant du lien>]

url="<adresse du lien>"

piwik=<identifiant piwik>

  • Paramétrage des URLs : il est possible d'insérer des étiquettes dynamiques dans les URLs

[SSO] : adresse du serveur SSO de Seshat

[PORTAILHOST] : portail dépendant de la zone d'accès du client (configuré dans portails.ini)

[TICKET] : identifiant de session

Configuration de l'accès à un portail en fonction de la plage IP du client

Eole-dispatcher est également utilisé dans certaines académies comme portail d'authentification unique pour l'accès aux portails ARENA[1].

Il peut exister 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 (accessible 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'utilisation d'une clé OTP[2] sera proposée ou non.

Il faut donc permettre à l'utilisateur d'obtenir le bon portail en fonction de la zone où il se trouve.

Complément

La fonction GetPortailHost du fichier /var/www/html/edispatcher/inc.php du dispatcher permet, en fonction de l'adresse IP du client, de rediriger l'utilisateur vers le bon portail. La récupération de l'adresse IP du client se base sur le champ HTTP_X_FORWARDED_FOR des headers HTTP.

Les différentes associations réseau / portail sont définies dans le fichier /var/www/html/edispatcher/utils/portails.ini.

Créer le fichier /var/www/html/edispatcher/utils/portails.ini et ajouter des sections décrivant une plage IP et l'adresse du portail correspondant :

[<adresse IP>]

mask=<masque IP>

portail="<adresse du portail pour cette plage IP>"

Un exemple de fichier est présent dans : /var/www/html/edispatcher/utils/portails.ini.sample.

Exemple

[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"

Exemple

Dans cet exemple, tout utilisateur se présentant avec une adresse IP du réseau 10.205.0.0/16, se verra renvoyé vers l'URL du portail académique https://scoweb.ac-reunion.fr.

La variable arena, permet de spécifier la zone ClearTrust associée au portail. Elle est utilisée si vous souhaitez intégrer les ressources ARENA dans le bureau Envole.

Plus d'informations : https://envole.ac-dijon.fr/wordpress/2014/02/19/integration-de-arena-dans-le-bureau-envole.