1- Installation du serveur OpenLDAP (réalisée sur windows)

Basée sur : http://mguessan.free.fr/nt/openldap.html Dossier d'installation : C:\openldap

a) Edition du fichier de conf : sladp.conf

  • schémas : Spécifier les schémas LDAP utilisés, un schéma définit la structure de l'annuaire, un peu comme les tables et les colonnes pour une base de données. Le schéma core est indispensable, ajouter le schéma java si le serveur doit être utilisé comme annuaire JNDI.

--> Ajout de include ./schema/java.schema

Ajouter aussi les schémas suivant dans cet ordre (ils permettent de créer d'autres objets, entre autre inetOrgPerson) :
include ./schema/cosine.schema
include ./schema/inetorgperson.schema

  • suffixe du serveur : il représente la racine LDAP du serveur.

--> suffix "dc=lapindream,dc=com"

  • nom de l'entrée administrateur du serveur : C'est le super-utilisateur du serveur. La valeur de rootdn doit être en accord avec le suffixe.

--> rootdn "cn=Manager,dc=lapindream,dc=com"

  • le mote de passe :

--> rootpw secret

b) Lancement du serveur

On double clique sur slapd.exe ou dans une console : slapd -d 1 pour avoir les logs debug. Ne pas fermer la fenêtre !!!

c) Test du serveur

Dans une nouvelle console, taper : ldapsearch -x -s base (objectclass=*) namingContexts

Des informations sur le serveur ldap sont affichées, entre autre le suffix :

dn:namingContexts: dc=lapindream,dc=com

d) Alimentation initiale de l'annuaire

Créer un fichier init.ldif dans le dossier d'installation d'openldap :

   dn: dc=lapindream,dc=com
   objectclass: top
   objectclass: dcObject
   objectclass: organization
   o: Lapindream
   dc: lapindream
   dn: cn=Manager,dc=lapindream,dc=com
   objectclass: organizationalRole
   cn: Manager

On charge le fichier en tapant la commande : slapadd -f slapd.conf -l init.ldif

Puis on redémarre le serveur.

e) Installation du client LDAP Browser/Editor 2.8.1

http://www-unix.mcs.anl.gov/~gawor/ldap/download.html

Dézipper et lancer lbe.bat.

Configurer la connexion :

Interface de connexion LDAP Browser

2- Création de l'annuaire

Nous allons suivre l'exemple fournit avec la doc de jboss portal, 19.4.1.

Keeping users membership in role entries : http://docs.jboss.com/jbportal/v2.6.3/referenceGuide/html_single/#ldap

Au final nous voulons avoir l'arborescence suivante :

Arborescence LDAP

a) Les utilisateurs

Tout d'abord on créer un fichier jboss_user.ldif, dans le dossier d'install d'openldap. Dans ce fichier nous définissons un noeud Personnes. Puis nous créons 3 utilisateurs rattachés à ce noeud :

dn: ou=Personnes,dc=lapindream,dc=com
objectclass: top
objectclass: organizationalUnit
ou: Personnes

dn: uid=user,ou=Personnes,dc=lapindream,dc=com
objectclass: top
objectclass: inetOrgPerson
objectclass: person
uid: user
cn: JBoss Portal user
sn: user
userPassword: user
mail: user@email.com

dn: uid=admin,ou=Personnes,dc=lapindream,dc=com
objectclass: top
objectclass: inetOrgPerson
objectclass: person
uid: admin
cn: JBoss Portal admin
sn: admin
userPassword: admin
mail: admin@email.com

dn: uid=minimarmotte,ou=Personnes,dc=lapindream,dc=com
objectclass: top
objectclass: inetOrgPerson
objectclass: person
uid: minimarmotte
cn: Emmanuel Pierre
sn: minimarmotte
userPassword: mini
mail: minimarmotte@gmail.com

Note :

  • chaque enregistrement dans le fichier est séparé du précédent et du suivant par une ligne vierge,
  • les espaces sont pris en compte. ATTENTION, il est très important qu'il n'y ait aucun espace en fin de ligne. Dans ce cas vous risqueriez d'obtenir une erreur du style

ldap_add: Invalid syntax (21) additional info: objectClass: value #0 invalid per syntax

Pour charger ce fichier nous utilisons une autre commande ldapadd. Il n'est pas nécessaire de redémarrer le serveur.

Commande pour ajouter des entrées dans l'annuaire (le mot de passe sera demandé) : ldapadd -D "cn=Manager, dc=lapindream,dc=com" -W -f jboss_user.ldif

Si tout ce passe bien, on a le message suivant :

adding new entry "ou=Personnes,dc=lapindream,dc=com"
adding new entry "uid=user,ou=Personnes,dc=lapindream,dc=com"
adding new entry "uid=admin,ou=Personnes,dc=lapindream,dc=com"
adding new entry "uid=minimarmotte,ou=Personnes,dc=lapindream,dc=com"

On peut alors vérifier dans LDAP BROWSER le bon déroulement de l'opération après un petit rafraichissement.


b) Les roles

Nous allons de même définir des roles dans un fichier jboss_roles.ldif

dn: ou=Roles,dc=lapindream,dc=com
objectclass: top
objectclass: organizationalUnit
ou: Roles

dn: cn=User,ou=Roles,dc=lapindream,dc=com
objectClass: top
objectClass: groupOfNames
cn: User
description: the JBoss Portal user group
member: uid=user,ou=Personnes,dc=lapindream,dc=com
member: uid=minimarmotte,ou=Personnes,dc=lapindream,dc=com

dn: cn=Admin,ou=Roles,dc=lapindream,dc=com
objectClass: top
objectClass: groupOfNames
cn: Admin
description: the JBoss Portal admin group
member: uid=admin,ou=Personnes,dc=lapindream,dc=com

On charge les roles : ldapadd -D "cn=Manager, dc=lapindream,dc=com" -W -f jboss_roles.ldif

On a définit 2 roles : User et Admin. Les personnes user et minimarmotte ont comme role User. La personne admin a pour role Admin.

Suite : Configuration JBoss Portal : Authentification sur le portail avec LDAP (2)