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

Preview:

DESCRIPTION

Présentation de LinID Directory Manager aux RMLL 2012

Citation preview

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

RMLL 10 juillet 2012–

2

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

3

Présentation

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

5

Les annuaires 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

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

8

Directory Information Tree

dc=linid,dc=org

ou=people ou=groupsou=structures

uid=coudot cn=admin

Entrée / Attribut / Valeur

Attribut Attribut

AttributAttribut

Entrée

Attribut

Valeur

Valeur

Valeur

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

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

12

Les interfaces

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

14

Apache Directory Studio

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

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.

17

LinID Directory Manager

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

19

Couches logicielles● LinID Directory Manager est un framework Web

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

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

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

22

Page de démarrage de la démonstration

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

24

Exemples de réalisation

25

Exemples de réalisation

26

Exemples de réalisation

27

Exemples de réalisation

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

28

La fin est proche...

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

30

Questions ?

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

Recommended