ESCO-Portail et la gestion des groupes
Christian Daviau
GIP RECIA
151 Rue de la Juine – 45160 Olivet
Arnaud Deman
GIP RECIA
151 Rue de la Juine – 45160 Olivet
Résumé
L'ENT ESCO-Portail est un projet porté par le GIP RECIA et qui a pour objectif d'adapter l'ENT ESUP-Portail aux besoins et aux contraintes des établissements d'enseignement secondaire. Le déploiement d'un ENT unique destiné à un grand nombre d'utilisateurs et partagé par de nombreux établissements autonomes donne à la gestion des groupes une importance prépondérante. En effet, c'est à travers elle que le GIP RECIA a choisi de mettre en œuvre la délégation de l'administration de l'ENT et de ses services dans chaque établissement. Internet2/Grouper est l'outil qui a été retenu pour ses fonctionnalités et ses capacités d'adaptation.
Nativement riche, Grouper a cependant nécessité des enrichissements fonctionnels et techniques pour s'adapter à un environnement à fortes contraintes :
intégration complète dans uPortal (GroupStore),
service d'alimentation automatisé,
groupes dynamiques,
interface utilisateur conviviale.
La réalisation de ces travaux a été l'occasion d'établir les bases d'une collaboration avec les communautés Internet2, JaSig et ESUP.
Mots clefs
ENT, Gestion des groupes, délégation d'administration, ESCO-Portail, ESUP-Portail, Internet2, Grouper, uPortal
Le GIP RECIA1 (RÉgion Centre InterActive), constitué en octobre 2003 a pour co-contractants l'État, le Conseil Régional Centre, les universités d'Orléans et Tours, le Conseil Général du Cher, le CROUS d'Orléans-Tours et enfin l'Association de Développement et de Promotion des Technologies de l'Information et de la Communication (DPTIC). Ce Groupement d'Intérêt Public "Recherche" (loi n°82-610 du 15 juillet 1982) a notamment pour objet :
de constituer le centre de ressources et de compétences techniques régional ;
d'assurer la mise en œuvre et le développement de services et d'applicatifs T.I.C. dans le domaine de l'éducation et pour l'ensemble de la population de la région Centre ;
de contribuer au développement technologique de la région Centre par la coordination de commandes de services de communications électroniques à haut débit, destinés notamment à répondre aux besoins d'accès des établissements de recherche, d'enseignement secondaire et supérieur de la région, des services de l'État, de toute communauté publique ou de toute collectivité membre du GIP, dans le respect de la règlementation en la matière.
Une des missions confiée au GIP RECIA concerne le développement des ENT pour tous les établissements d'enseignement secondaire de l'académie Orléans-Tours. Les universités régionales ayant choisi de déployer leurs ENT sur la base du projet ESUP-Portail, il a dès le début été envisagé d'adapter cet ENT pour les établissements d'enseignement secondaire. Une étude réalisée fin 2007 a confirmé la pertinence de ce scénario : le projet ESCO-Portail était né.
Des collaborations avec le consortium ESUP-Portail, mais aussi avec d'autres académies comme celle de Bordeaux (projet ARGOS2), Montpellier (projet 4-5-63) et Lille ont été opérées pour concrétiser le projet.
Le développement et la mise en œuvre de l'ENT pour les établissements d'enseignement secondaires en Région Centre est financé à parts égales par la Région Centre4, l'État5, le FEDER6 (Fond Européen de Développement Régional) et le GIP RECIA. Pendant l'année 2008/2009, 9 lycées (dont un lycée agricole) ont expérimenté l'ENT, suivis en octobre 2009 par 4 collèges. La généralisation du déploiement a commencé en novembre 2009 sur le périmètre lycées à raison de 30 nouveaux établissements par année scolaire.
La mise en œuvre d'un ENT en Région Centre repose sur une collaboration entre divers acteurs aux compétences complémentaires :
la Région Centre, porteur de projet pour les lycées de l'éducation nationale, les lycées agricoles, les centres de formation d'apprentis, les instituts de formations sanitaires et sociales ;
les départements (Cher, Eure-et-Loir, Indre, Indre-et-Loire, Loir-et-Cher, Loiret) qui sont les porteurs de projet pour ce qui concerne les collèges ;
l'académie Orléans-Tours pour ce qui concerne le périmètre Éducation Nationale – enseignement secondaire ;
la Direction Régionale de l'Alimentation, de l'Agriculture et de la Forêt7 pour ce qui concerne les lycées agricoles ;
les établissements qui disposent d'une autonomie.
Le périmètre le plus important concerne celui de l'éducation nationale, avec ses 340 établissements (106 lycées et 234 collèges), ses quelques 180 000 élèves et un potentiel de 600 000 comptes (élèves, personnels, parents...) répartis dans des groupes d'établissements ou académiques (groupes disciplinaires, cités scolaires...) dont le nombre final est estimé à 50 000.
L'ENT doit, entre autres, permettre de concilier une centralisation académique et territoriale avec une vision d'établissement. Le système d'information est académique, il regroupe toutes les informations relatives aux lycées et collèges. Les services ENT sont mis en œuvre pour chaque porteur de projet (collectivités territoriales) et, une fois authentifié, l'utilisateur doit retrouver l'environnement de son établissement (Figure 2).
Selon le cahier des charges des ENT du second degré, le référentiel ENT est constitué à partir d'extractions de ce qui est appelé « Annuaire Fédérateur Académique » et qui est en fait un entrepôt de données issues des bases métier de l'Éducation Nationale. ESCO-Portail dispose d'un dispositif, nommé ESCO-Sarapis, qui permet de constituer un référentiel ENT fiable et évolutif à partir de ces extractions. ESCO-Sarapis donne une cohérence aux informations reçues, crée et met à jour les comptes des utilisateurs et envoie au gestionnaire de groupes (Internet2/Grouper), au moyen de ESCO-Grouper, les informations nécessaires à la constitution des groupes de base (classes, niveaux, types de populations...) avant publication dans l'annuaire LDAP.
Figure 3: dispositif
d'alimentation automatisé du référentiel ENT
Il a très vite été identifié que la gestion des groupes proposée par uPortal ne pourrait pas satisfaire aux objectifs spécifiques du projet :
profilage des utilisateurs au sein du portail avec une gestion de groupes élaborée permettant d'adapter dynamiquement l'environnement des utilisateurs avec le niveau de finesse voulue : par établissement, par catégorie de personne (e.g. : élèves, enseignants, parents...), par classe, par niveau d'enseignement, etc...
délégation d'administration : baser les droits d'accès sur les groupes tout en permettant aux établissements d'en déterminer les membres, afin d'offrir une grande souplesse d'utilisation et d'autoriser l'autonomie des établissements pour tout ce qui concerne les tâches d'administration courantes ;
assurer un bon niveau d'intégration des composants logiciels : un groupe défini au niveau du référentiel des groupes devant être accessible pour le portail et l'ensemble des briques logicielles. Cette approche devant permettre à ESCO-Portail d'évoluer pour devenir, progressivement, un outil intégré et réellement collaboratif tout en restant ouvert en terme de périmètre fonctionnel.
La recherche d'un outil « universel » de gestion des groupes a été donc réalisée et le choix s'est porté sur Grouper8, proposé par la communauté Internet2. Cet outil répond à une grande partie des besoins exprimés et son architecture très ouverte permet des évolutions nécessaires au projet :
son intégration dans le portail ENT (JaSig/uPortal) ;
la constitution de groupes depuis les informations de l'annuaire fédérateur académique ;
la constitution de groupes dynamiques ;
une interface conviviale, permettant l'utilisation par des administrateurs d'établissements peu formés.
De plus, la communauté Internet2 est très active, ce qui permet de discuter des évolutions et trouver de l'aide en cas de difficultés. Le GIP RECIA aura implémenté à la fin de l'année civile l'ensemble des fonctionnalités manquantes. Ces réalisations ont été l'occasion de commencer à mettre en place des collaborations avec les consortiums Internet29 (qui a réalisé une étude de cas sur l'utilisation de Grouper dans ESCO-Portail10)et le JASIG11.
Dans Grouper, les groupes peuvent contenir des individus, d'autres groupes ou encore un mélange des deux. La notion de dossier, proche de celle d'espace de noms facilite la structuration de la hiérarchie des groupes. Une caractéristique technique fondamentale de Grouper est de réaliser le calcul des appartenances lors de la création ou de la modification des groupes et non lors de leur utilisation. L'intérêt est de garantir des temps de réponse performant et une bonne résistance à la charge. Enfin, Grouper offre un certain nombre de facilités d'adaptation, comme la possibilité de créer des types de groupes personnalisés ou encore un mécanisme pour implanter des extensions (hooks).
Figure 4: concepts de
Grouper
La gestion des droits dans Grouper est suffisamment fine et détaillée pour permettre la mise en place d'un mécanisme de délégation d'administration.
Dans le projet ESCO-Portail, ces possibilités sont très précieuses. Elles permettent, par exemple, de déléguer dans les établissements la définition des droits d'accès aux canaux du portail : chaque canal est accessibles aux membres d'un groupe et la composition de ce groupe est laissé à la discrétion des administrateurs locaux des établissements.
Pour que des applications externes puissent utiliser les groupes constitués via Grouper, un mécanisme de publication dans les branches des groupes et des individus de l'annuaire LDAP est utilisé. Cette publication est assurée par un composant développée par la communeauté Internet2 : LDAPPC, qui est déclanché régulièrement afin de maintenir la cohérence entre Grouper et l'annuaire. Parmis les applications exploitant les groupes exportés dans l'annuaire, on peut citer l'application de cahier de textes ou encore Sakai, l'outil de formation et d'enseinement à distance. Pour ce dernier, un connecteur spécifique à été développé par l'un de nos prestataires, afin de réaliser une intégration la plus complète possible.
L'interface utilisateur initiale de Grouper permet de réaliser toutes les fonctions nécessaires à la gestion des groupes. Elle a été francisée et légèrement adaptée pour pouvoir être utilisée dans les établissements par les administrateurs locaux. Cependant, cette interface n'a pas la simplicité suffisante pour être généralisée, elle est adhérente à une version maintenant dépassée de Grouper (1.2.1) et ne permet pas d'utiliser toutes les possibilités de Grouper (types de groupes personnalisés, groupes dynamiques...). Une nouvelle interface est désormais nécessaire, plus conviviale, ouverte aux extensions, non adhérente à la version de Grouper et intégrée au portail sous forme de portlet.
A partir des possibilités offertes par Grouper, une stratégie de gestion des groupes a été définie pour permettre de répondre à un certain nombre d'objectifs : déléguer une partie des tâches d'administration dans les établissements, profiler les accès à l'ENT ou gérer les droits au niveau des différents canaux. Un certain nombre de services, sensibles du point de vue de la sécurité, s'appuient également sur la gestion des groupes comme, par exemple, la possibilité pour les enseignants de réinitialiser l'ensemble des mots de passe des élèves d'une de leurs classes. Cette stratégie de gestion des groupes rend nécessaire la constitution automatisée d'une hiérarchie initiale de groupes pour chacun des établissements intégrés dans le périmètre de l'ENT. Outre la création de groupes et de dossiers, ce processus a également en charge le positionnement des privilèges et la ventilation des personnes rattachées aux établissements : personnels administratif, enseignants, élèves, parents...
D'un point de vue technique, l'organisation des dossiers, des groupes ainsi que les relations d'appartenance et d'administration sont définies de façon synthétique, via un mécanisme de « templates ». Le module d'alimentation est constitué de deux parties : un web service qui contient la logique métier relative à la gestion des relations d'appartenance et d'administration et un client qui détermine les informations transmises au web service. L'intérêt de ce découpage est de faciliter la réutilisation de ce module dans d'autres contextes : seule la partie cliente, la plus simple, devant être adaptée.
Les groupes définis dans Grouper n'ont d'utilité que s'ils sont accessibles aux autres applications : ENT, canaux et applications externes. Suivant le type d'applications, deux modes différents d'accès aux groupes sont utilisés. Nous avons vu plus haut que Grouper propose un mécanisme de publication des groupes dans l'annuaire LDAP (LDAPPC). Pour le portail et les canaux une intégration à été réalisée au nivaux du gestionnaire de groupes uPortal.
L'intégration des groupes définis dans Grouper au sein du portail repose, d'une part, sur un web service d'exposition des groupes et dossiers et, d'autre part, sur deux GroupStores qui sont des composants spécifiques du gestionnaire de groupes du portail. Le web service modifie également la sémantique de Grouper pour l'adapter à celle du portail en lui présentant les dossiers comme s'ils étaient des groupes. L'un des GroupStore est un client de ce web service tandis que l'autre est chargé de monter dynamiquement l'arborescence issue de Grouper dans celle du portail, sans écriture dans la base de données uPortal. Ces composants permettent au portail d'accéder de façon transparente aux groupes définis dans Grouper. Ainsi, ceux-ci peuvent être utilisés dans les définitions de layouts (DLM) ou pour positionner les droits d'accès aux canaux. Les canaux les plus anciens du portail (i.e. implémentant l'interface IChannel) peuvent les utiliser via le canal servant de gestion de groupes. Il s'agit, par exemple, du canal d'accès aux espaces de stockages. Les plus récents, qui sont développés sous la forme de portlets, comme ESUP-Lecture ou NewsPortlet, y accèdent via le web service mis à disposition par la communauté ESUP-portail.
Nativement, Grouper ne permet pas de créer de groupes définis
sur des critères d'appartenance. Dans le portail, les groupes
de type PAGS (Person Attributes Group Store) permettent de
constituer de tels groupes, définis en fonction des attributs
des individus. Ceux-ci étant très utilisés, une
extension de Grouper a été réalisée afin
de supporter un type de groupes équivalent aux groupes PAGS :
les groupes dynamiques. La contrainte principale pour ce
développement était, pour une question de performance,
de ne pas dégrader le fonctionnement normal de Grouper dans
lequel le calcul des appartenances est réalisé lors de
la création et de la modification des groupes.
La
structure de cette extension peut être décomposée
en trois grandes parties :
la définition logique des groupes, qui est indépendante du type de référentiel utilisé pour les individus ;
un module d'initialisation, dont la fonction est de réaliser le peuplement initial du groupe lors de sa création ;
un module qui maintient la cohérence des groupes dynamiques avec le référentiel des individus en répercutant les modifications qui interviennent sur ce dernier.
D'un point de vue technique les définitions logiques des groupes dynamiques respectent une grammaire élémentaire. A partir de cette grammaire, un analyseur lexical et un analyseur syntaxique ont été générés via l'outil ANTLR (Another Tool For Language Recognition). Pour le module d'initialisation, notre référentiel des individus étant un annuaire LDAP, une implémentation réalisant une traduction des définitions logiques en filtre LDAP a été développée. Enfin, pour le maintient de cohérence, notre implémentation s'appuie sur le protocole de réplication LDAP Sync. Le module est vu par l'annuaire comme un réplicat LDAP et, via ce mécanisme, les modifications qui interviennent dans le référentiel des individus sont transmises au niveau des Groupes. Pour Grouper, les groupes dynamiques sont des groupes classiques et peuvent être manipulés exactement comme les groupes natifs.
Nous avons déjà vu que dans Grouper, il est possible de définir des types de groupes personnalisés et d'y associer un champ spécifique. Les groupes dynamiques exploitent cette possibilité, pour discriminer les groupes natifs des groupes dynamiques et pour réaliser l'association entre ces derniers et leur définition logique. Enfin, la logique métier correspondant à ce nouveau type de groupes est intégrée de façon transparente via le mécanisme d'extension de Grouper : les hooks.
L'interface développée par la communauté Internet 2 est orientée administrateurs. Pour faciliter l'utilisation de l'outil dans les établissements, une nouvelle interface est développée par l'un de nos prestataires. Les caractéristiques principales de cette nouvelle interface sont :
un développement basé sur ESUP-Commons, permettant un déploiement en mode Servlet ou Portlet ;
une ergonomie poussée via l'utilisation de composants Fluids ;
la mise en place de la notion de contexte de déploiement, inspirée d'ESUP-lecture, permettant par exemple de publier dans le portail une instance aux fonctionnalités limitées pour les élèves et étendues pour les administrateurs locaux ;
l'ajout de composants graphiques spécifiques facilitant l'utilisation de types de groupes particuliers comme les groupes dynamiques ou, à terme, les groupes liés aux listes de diffusion ;
une meilleure gestion du contexte multi-établissements, avec par exemple une recherche des individus qui porte sur un établissement donné ou, au contraire, sur l'ensemble du périmètre ENT, suivant que l'utilisateur travaille sur un groupe d'établissement ou sur un groupe inter-établissements (e.g. groupe disciplinaire) ;
le support de fonctionnalités classiques telles que le support de CAS, l'accessibilité (niveau bronze) ou encore l'internationalisation.
Après plus d'une année en production comme élément
du socle de l'ENT, Grouper se révèle être un
outil très efficace pour répondre aux besoins des
établissements d'enseignement secondaire, en particulier
grace à ses capacités d'adaptation, les possibilités
qu'il offre en terme de délégation d'administration et
les améliorations qui ont été apportés
dans le projet ESCO-Portail. L'objectif est d'utiliser Grouper comme
unique référentiel de groupes allant jusqu'à
couvrir des besoins fontionnels très variés comme la
constitution de listes de diffusion ou de certains groupes systèmes
tels que ceux utilisés par Samba. Le travail d'intégration
de l'ensemble des applicatifs se poursuit afin de les rendre
capables d'interagir avec Grouper, via le web service ou par
l'intermediaire de l'annuaire LDAP. La publication dans l'annuaire
LDAP doit être améliorée en l'orientant vers une
publication en temps réel.
Enfin, l'intégration au
portail doit se poursuivre avec, comme objectif final, de remplacer
par Grouper le gestionnaire de groupes actuel. Grace à la
communauté ESUP-portail, des premiers contacts ont pu être
établis dans ce sens avec le JASIG qui suit avec grand
intérêt les développements réalisés
pour le projet ESCO-Portail, notament pour ce qui concerne la
nouvelle interface graphique.
6http://europa.eu/legislation_summaries/employment_and_social_policy/job_creation_measures/l60015_fr.htm