Recherche
Ce plugin Nuxeo permet de retrouver les groupes EsupPortail/uPortal en tant que groupes Nuxeo.
Plus précisément il permet de connecter le WebService d'exposition des groupes EsupPortail/uPortal (packagé nativement avec les distributions EsupPortail) dans Nuxeo.
L'UNR RUNN travaille aujourd'hui à mettre en place un ENT EsupPortail mutualisé. Dans ce cadre, elle réfléchit à mettre en place dans le même temps un certain nombre de nouveaux services mutualisés intégrés à cet ENT.
La GED, au travers de Esup-Ecm (Nuxeo), fait partie de ces services, les possibilités récentes d'Esup-Ecm en terme d'authentification fédérée (shibboleth) ont notablement contribué à cela.
L'ENT de l'UNR RUNN se construit au mieux autour de la fédération d'identités pour l'authentification/identification. A court/moyen terme, cette identification shibboleth devrait également être complétée par un méta-annuaire permettant d'assurer un "service d'annuaire" aux différentes applications demandant cette fonctionnalité. A moyen/long terme, la question d'une gestion de groupes cohérente et fédérée se pose également, et il est fort probable là aussi que l'UNR RUNN adopte les solutions Esup autour de Grouper.
Aujourd'hui, en l'absence d'une solution telle que Grouper au niveau de l'UNR RUNN et pour pouvoir dès maintenant fonctionner, des groupes ont été constitués au niveau d'EsupPortail même. Ces groupes sont prioritairement des groupes "PAGS" dynamiques qui sont fonction d'une regexp sur les attributs utilisateurs, c'est à dire pour l'ENT de l'UNR RUNN, des attributs shibboleth.
Pour certains besoins, on a cependant dû créer des groupes locaux (où l'on a saisi manuellement chacun des membres), ces groupes correspondent en fait à des groupes de fonctionnement interne UNR (inter-établissement) que l'on ne retrouve pas dans les SI des établissement (sous quelle forme que ce soit) et que l'on ne peut donc pas retrouver au travers des attributs shibboleth.
On a donc souhaité retrouver ces mêmes groupes dans Esup-Ecm, et il nous paraissait dommageable de devoir les renseigner de nouveau, puis donc de devoir maintenir en parallèle ces groupes à la fois au niveau du gestionnaire de groupes d'EsupPortail et au niveau du gestionnaire de groupes d'Esup-Ecm .
Par rapport à nos stratégies de mise en place (EsupPortail est incontestablement le coeur de l'ENT et services satellitaires) et notre ENT (on a pris l'habitude de gérer les groupes locaux/UNR dans EsupPortail), nous avons travaillé à récupérer les groupes depuis EsupPortail vers EsupEcm (et non l'inverse).
Il en a donc découlé ce développement d'esup-ecm-uportal-groups qui devrait nous servir tant qu'une solution plus structurante (Grouper certainement donc) ne sera pas étudiée, adoptée puis mise en place.
Nous ne distribuons actuellement pas de jar, mais le plugin a été développé pour pouvoir le faire au besoin.
Nous vous proposons de récupérer les sources via subversion depuis https://subversion.cru.fr/esup-ecm/esup-ecm-uportal-groups/trunk
svn co https://subversion.cru.fr/esup-ecm/esup-ecm-uportal-groups/trunk esup-ecm-uportal-groups
Ensuite, le seul fichier de configuration du module en lui même se situe ici : src/main/resources/OSGI-INF/uportal-ws-contrib.xml (ce fichier devrait pouvoir être externalisé su jar, nous n'avons pas réussi pour l'instant). Dans ce fichier, vous devez indiquer l'URL du WebService EsupPortail/uPortal, du type :https://dsi-2.univ-rouen.fr/uPortal/services/UportalService
Nous avons également développé un petit jeu de test de récupération des groupes, vous devriez pour que les tests passent (optionnel) modifier également le fichier java src/test/java/org/esupportail/ecm/uportal/TestEsupPortalService.java : bonamvin@univ-rouen.fr est donné en dur, remplacez le par un identifiant d'un utilisateur uPortal étant affecté à au moins un groupe local.
mvn clean package
vous permet d'obtenir un target/esup-ecm-uportal-groups-5.4.0.jar
Si la phase de test échoue car vous n'avez pas voulu modifier src/test/java/org/esupportail/ecm/uportal/TestEsupPortalService.java ou encore que votre EsupPortail n'est pas disponible etc. en toute conscience vous pouvez éviter la phase de tests ainsi :
mvn-Dmaven.test.skip=true clean package
Une fois le jar obtenu, sur une version nuxeo-dm-5.4.0-tomcat vous pouvez déployer esup-ecm-uportal-groups en :
* copiant target/esup-ecm-uportal-groups-5.4.0.jar dans nxserver/plugins/
* copiant les jar de target/classes/lib/ dans nxserver/lib/ (nous n'avons pas réussi à les embarquer correctement dans esup-ecm-uportal-groups-5.4.0.jar pour déploiement automatique lors du lancement de nuxeo-tomcat), c'est à dire les jars suivant :
axis-1.4.jar axis-wsdl4j-1.5.1.jar commons-discovery-0.2.jar esup-uportal-ws-client-20100915.jar jaxrpc-api-1.1.jar
Vous pouvez alors retrouver les groupes uPortal dans la recherche de groupes de Nuxeo (Utilisateurs et groupes) ainsi que dans l'onglet Admiinistration des espaces/sections/dossiers - Droits d'accès (positionnement des droits).
Un certain nombre de limitations sont présentes sur ce module, la plupart ne seront pas levées, on rappelle qu'à terme il parait plus élégant de se tourner vers un gestionnaire de groupes plus structurant et centralisé tel que Grouper - pour lequel il faudra, à l'image de ce qui a été fait pour uPortal->Nuxeo via ce plugin esup-ecm-uportal-groups, développer un plugin Nuxeo permettant de retrouver les groupes issus de Grouper dans Nuxeo.
Voici donc ces limitations (sans doute non exhaustif) :
On utilise EhCache pour éviter d'appeler trop souvent les WS EsupPortail. Cela est codé directement dans UportalGroupComputer.java, on y donne en dur le temps de cache par exemple (5 min).
On pourrait rendre cette implémentation de cache plus souple.
... autre ?