31
Construire son application web de gestion de contenu d’annuaire LDAP Clément OUDOT RMLL 10 juillet 2012

Construire son application web de gestion de contenu d'annuaire LDAP

Embed Size (px)

DESCRIPTION

Présentation de LinID Directory Manager aux RMLL 2012

Citation preview

Page 1: Construire son application web de gestion de contenu d'annuaire LDAP

Construire son application web de gestion de contenu d’annuaire LDAP Clément OUDOT

RMLL 10 juillet 2012–

Page 2: Construire son application web de gestion de contenu d'annuaire LDAP

2

Sommaire● Les annuaires LDAP● Les interfaces● Présentation de LinID Directory Manager

Page 3: Construire son application web de gestion de contenu d'annuaire LDAP

3

Présentation

Page 4: Construire son application web de gestion de contenu d'annuaire LDAP

4

Clément OUDOT● Administrateur LDAP depuis 2003 à LINAGORA● LinID Dream Team Manager : http://linid.org ● Leader du projet LDAP Tool Box :

http://ltb-project.org ● Leader du projet LemonLDAP::NG :

http://lemonldap-ng.org

Page 5: Construire son application web de gestion de contenu d'annuaire LDAP

5

Les annuaires LDAP

Page 6: Construire son application web de gestion de contenu d'annuaire LDAP

6

Le protocole LDAP● Protocole défini par des standards (RFC)● LDAPv2 en 1995, LDAPv3 en1997● TCP/IP, LBER, ASN1 ● 9 opérations unitaires et possibilités d'extension● Schéma définissant les classes d'objet, les

attributs, les syntaxes et les règles de comparaison

● Organisation des données en arbre

Page 7: Construire son application web de gestion de contenu d'annuaire LDAP

Flux LDAP

Client Annuaire

Connexion

Authentification

Authentification réussie

Recherche

Résultat de la recherche

Modification d'une entrée

Erreur lors de la modification

Ajout d'une entrée

Entrée ajoutée

Déconnexion

Page 8: Construire son application web de gestion de contenu d'annuaire LDAP

8

Directory Information Tree

dc=linid,dc=org

ou=people ou=groupsou=structures

uid=coudot cn=admin

Page 9: Construire son application web de gestion de contenu d'annuaire LDAP

Entrée / Attribut / Valeur

Attribut Attribut

AttributAttribut

Entrée

Attribut

Valeur

Valeur

Valeur

Page 10: Construire son application web de gestion de contenu d'annuaire LDAP

Quelques implémentations serveurUniversité

du Michigan

Netscape Directory

Server

OpenLDAP

Novell eDirectory Microsoft

Active Directory

IBMCriticalPath

Propriétaires Libres

SUN Directory

Server

Oracle Directory

Server

OpenDS

ApacheDS

OpenDJ

RedHat Directory

Server

Fedora Directory

Server

Port 389

Page 11: Construire son application web de gestion de contenu d'annuaire LDAP

Exemples d'usage● Infrastructure :

● Référentiel d'authentification● Gestion des machines, des comptes SUDO

● Sécurité :● Référentiel d'authentification et d'autorisation● Stockage des certificats

● Utilisateur :● Pages blanches, pages jaunes● Intranet, carnet d'adresse

Page 12: Construire son application web de gestion de contenu d'annuaire LDAP

12

Les interfaces

Page 13: Construire son application web de gestion de contenu d'annuaire LDAP

13

Les outils d'administration● Ligne de commande, console :

● ldapsearch, ldapmodify● ldapvi● Scripts Perl (Net::LDAP)

● Clients lourds :● Jxplorer, LDAP browser● Apache Directory Studio

● Interfaces Web :● phpLDAPadmin● web2ldap

Page 14: Construire son application web de gestion de contenu d'annuaire LDAP

14

Apache Directory Studio

Page 15: Construire son application web de gestion de contenu d'annuaire LDAP

15

Les interfaces de gestion● Dans le monde propriétaire :

● Calendra Directory Manager (Calendra)● Meibo (Ilex)● Certains Identity Manager (Oracle, Novell, etc.)

● En logiciel libre :● LDAP Account Manager● ldapSaisie● Fusion Directory● LinID Directory Manager● OpenIDM (ForgeRock)

● En majorité : des développements spécifiques

Page 16: Construire son application web de gestion de contenu d'annuaire LDAP

16

Fonctionnalités attendues● Conception des écrans (modèles HTML)● Afficheur et éditeur de valeurs adaptés à chaque

type d'attribut● Choix des libellés, internationalisation● Délégation de gestion, modèle d'autorisation par

profils● Flux métiers● Respect du DIT initial● Gestion des photos, navigation contextuelle, etc.

Page 17: Construire son application web de gestion de contenu d'annuaire LDAP

17

LinID Directory Manager

Page 18: Construire son application web de gestion de contenu d'annuaire LDAP

18

Historique● Développements initiés à l'UPMC en 2002,

d'abord en PHP puis en Java, sous le nom MetaLDAP

● Publication en Open Source sous le nom InterLDAP en 2003, devient projet ObjectWeb en 2006 dans le cadre de FederID

● Création de l'offre LinID en 2008, et renommage en LinID Content Manager puis LinID Directory Manager, hébergé sur la forge LinID chez LINAGORA

Page 19: Construire son application web de gestion de contenu d'annuaire LDAP

19

Couches logicielles● LinID Directory Manager est un framework Web

construit sur :● Tapestry 5● Spring, Spring LDAP● Maven● Xstream● Rhino● Ehcache

Page 20: Construire son application web de gestion de contenu d'annuaire LDAP

20

Architecture technique● Schéma enrichi :

● Reprend et surcharge le schéma technique LDAP● Ajoute des propriétés comme les libellés, les listes de

valeurs, les recherches autorisées...

● Autorisations :● Utilisation de règles implémentées dans l'interface avec le

langage LQL (LDAP Query Language)● Possibilité de s'appuyer sur les droits côté annuaire LDAP

avec des contrôles étendus comme Get Effective Rights

● Dépôt d'entrées :● Modélisation Java des entrées LDAP et des paramètres du

schéma enrichi, filtrées par la couche autorisation

Page 21: Construire son application web de gestion de contenu d'annuaire LDAP

21

Tester LinID Directory Manager● Une application des démonstration est fournie

avec le framewok (sample)● L'application embarque un annuaire OpenDS avec

quelques données de test, dont deux utilisateurs :● jdoe/secret : administrateur● jsmith/secret : utilisateur

● Possibilité de déployer dans Tomcat ou Jetty● Démarrage depuis le SVN :

$ mvn -Popends jetty:run

Page 22: Construire son application web de gestion de contenu d'annuaire LDAP

22

Page de démarrage de la démonstration

Page 23: Construire son application web de gestion de contenu d'annuaire LDAP

23

Créer sa propre application de gestion● Une phase d'étude préalable :

● Modèle de données● Profils de droits● Choix des écrans

● Copie de l'application de démonstration et import dans Eclipse

● Génération du schéma enrichi (script Perl fourni: eschemaGenerator.pl)

● Édition XML : schéma enrichi, règles LQL● Adaptation des écrans

Page 24: Construire son application web de gestion de contenu d'annuaire LDAP

24

Exemples de réalisation

Page 25: Construire son application web de gestion de contenu d'annuaire LDAP

25

Exemples de réalisation

Page 26: Construire son application web de gestion de contenu d'annuaire LDAP

26

Exemples de réalisation

Page 27: Construire son application web de gestion de contenu d'annuaire LDAP

27

Exemples de réalisation

Présentation de LinID OpenLDAP Manager en conférence jeudi 12 juillet !

Page 28: Construire son application web de gestion de contenu d'annuaire LDAP

28

La fin est proche...

Page 29: Construire son application web de gestion de contenu d'annuaire LDAP

29

Merci● Merci :

● RMLL et les organisateurs de la session● Société LINAGORA

● Restons en contact :● Identica: @coudot● Twitter: @clementoudot @LinID_FOSS ● IRC: KPTN #LinID@freenode

Page 30: Construire son application web de gestion de contenu d'annuaire LDAP

30

Questions ?

Page 31: Construire son application web de gestion de contenu d'annuaire LDAP

Merci de votre attention

http://www.linid.org

Logiciels et services Open Source80 rue Roque de Fillol l 92800 PUTEAUXTel : 0810 251 251 l Fax : +33 1 46 96 63 64www.linagora.com