Sous MacOS X Leopard, Snow Leopad, Lion, est installé par défaut OpenLDAP, mais celui-ci n'est pas configuré. La configuration de OpenLDAP va s'effectuer en quelques étapes

La première étape sera de générer un mot de passe encodé en SHA1, enfin de le renseigner dans le fichier de configuration, nous allons prendre comme exemple le mot de passe test

$ slappasswd
New password:
Re-enter new password:
{SSHA}0SS521ClE/XOg2q+EYnF4+17UQTpYho0

Maintenant que nous avons notre mot de passe, nous allons éditer le fichier de configuration /etc/openldap/slpad.conf, mais ce fichier n'existe pas par défaut, il va donc falloir en créer un à partir du modèle /etc/openldap/slapd.conf.default

Installation

$ cp slapd.conf.default slapd.conf

Passons maintenant à l'édition du fichier /etc/openldap/slpad.conf, et recherchons la ligne commençant par rootpw

#######################################################################
# BDB database definitions
#######################################################################

database        bdb
suffix          "dc=my-domain,dc=com"
rootdn          "cn=Manager,dc=my-domain,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw          secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory       /private/var/db/openldap/openldap-data
# Indices to maintain
index   objectClass     eq

et remplaçer la ligne par celle-ci.

rootpw          {SSHA}0SS521ClE/XOg2q+EYnF4+17UQTpYho0

Le mot de passe étant celui générer par la commande slappasswd

Vous pouvez également changer les lignes commençant par suffix et rootdn pour y mettre votre domaine, voici le mien qui va se nommer kryskool.local car celui me servira principalement de test

suffix          "dc=kryskool,dc=local"
rootdn          "cn=Manager,dc=kryskool,dc=local"

Testons que le fichier de configuration est correct et non corrompu

$ sudo /usr/libexec/slapd -Tt
bdb_db_open: warning - no DB_CONFIG file found in directory /private/var/db/openldap/openldap-data: (2).
Expect poor performance for suffix "dc=kryskool,dc=local".
bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
config file testing succeeded

Si vous avez le message successded c'est que votre configuration est correcte.

Execution

Maintenant il nous reste plus qu'a lancer le serveur ldap via la commande slapd en activant le mode debug de plus haut niveau (255)

sudo slapd -d 255

Si jamais vous obtenez command not found il va falloir indiquer le chemin complet

sudo /usr/libexec/slapd -d 255

Lors du premier lancement, le système va créer tous un tas de paramètre, charger les schémas spécifier dans votre fichier slapd.conf. Ensuite validons que nous pouvons nous connecter au serveur LDAP

$ ldapwhoami -H ldap://localhost:389/ -x -D "cn=Manager,dc=kryskool,dc=local" -W
Enter LDAP Password:

ensuite saisissez le mot de passe que vous avez générer à la première étape. Si l'authentification a reussi vous devriez avoir

dn:cn=Manager,dc=kryskool,dc=local

sinon vous aurez ce message, qui indique une erreur d'authentification

ldap_bind: Invalid credentials (49)

Vous pouvez également valider un première recherche avec la commande ldapsearch, en remplaçant bien sur le rootdn par le votre

$ ldapsearch -H ldap://localhost:389 -x -D "cn=Manager,dc=kryskool,dc=local" -W -b "dc=kryskool,dc=local" -s base -a always -z 1 "(objectClass=*)" "hasSubordinates" "objectClass"

Ajout de schémas supplémentaires

Pour exploiter un minimum votre annuaire LDAP, il va falloir lui rajouter au moins 2 schémas supplémentaires, éditer le fichier /etc/openldap.slapd.conf et au début du fichier, en juste en dessous du premier include ajouter y les 2 lignes suivantes, puis redémarrer votre service slapd

include         /private/etc/openldap/schema/cosine.schema
include         /private/etc/openldap/schema/inetorgperson.schema

Comments