-
Notifications
You must be signed in to change notification settings - Fork 8
Intégration de services non Web
Le sujet de la semaine est l'intégration de services non-Web à des services Web.
L'exemple qui sera pris sera celui d'un service LDAP (Lightweight Directory Access Protocol), service non-Web très largement utilisé dans les systèmes d'information des moyennes et grandes organisations.
Comme son nom l'indique, LDAP est un service d'annuaire, c'est-à-dire une sorte de gestionnaire de base de données stockant des entrées (entries), décrites par des attributs librement choisis parmi des "schémas" plus ou moins standards. Les entrées sont stockées dans une arborescence dans laquelle chaque embranchement correspond aux différentes valeurs d'un attribut (par exemple, dans la Fig. 1, le pays, l'état, l'organisation, le service, le nom usuel). Le chemin dans cet arbre est appelé "nom distinctif" (dn), c'est l'identifiant universel de l'entrée.
Aujourd'hui, pour être compatibles avec ActiveDirectory (l'implémentation de LDAP par Microsoft), la plupart des organisations utilisent la même structure dans laquelle les premiers niveaux correspondent au composants de domaine internet (dc) de l'organisation, puis dans lequel les entrées sont regroupées par classe (ex. : People pour les personnes), puis identifiées par un identifiant sur mesure (uid pour les utilisateurs).
En nous appuyant sur le service LDAP de l'université, nous allons développer un adaptateur (adapter) et un mandataire (proxy) :
- l'adaptateur permettra de "brancher" le service LDAP à une application prévue pour consommer un service Web,
- le mandataire permettra de limiter les droits d'écriture (de cette même application sur le service Web initial) aux seuls utilisateurs référencés dans l'annuaire.
On veut mettre en place un annuaire participatif. Au lieu de développer une application complète, on va réutiliser l'application Agorae et la "brancher" sur le service LDAP.
- À votre avis quelles entrées peut-on obtenir avec la commande suivante ?
ldapsearch -h "ldap.utt.fr" -x -b "ou=People,dc=utt,dc=fr" -s "sub" "(eduPersonAffiliation=student)"
Testez la. Puis remplacez student par faculty puis employee.
- Une partie du code de votre adaptateur a été développée. Récupérez la, installez-la puis lancez la :
git clone https://github.com/Hypertopic/ldap2hypertopic.git
npm install
node index.jsOuvrez l'URI http://localhost:1337/corpus/faculty.
-
Ce flux est-il conforme à la spécification d'un corpus selon Hypertopic ? Si oui, on devrait pouvoir le charger dans un client compatible. Que manque-t-il ? En utilisant une bibliothèque, ajoutez les deux lignes de code nécessaire.
-
Réessayez le client. Jusqu'où pouvez-vous aller dans la navigation. Quelle autre partie de la spécification devez-vous implémenter ? Inspectez le fichier
config/default.json. Que retrouvez-vous ? Inspectez le fichierindex.js. À quoi correspond la variablefilter?

