OpenLDAP Server sur MacOS X Client
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