lundi 11 septembre 2006
Installation d'ubuntu, quatrième étape: installation et configuration d'un annuaire LDAP
Par Iceman, lundi 11 septembre 2006 à 11:01 :: Nerdzage
Tout ceci n'est plus très frais dans ma mémoire vu que je m'y prends vraiment tard pour blogguer ceci. La configuration d'un annuaire LDAP n'a pas été une sinecure...
Le tuto qui m'a le plus aidé est celui-ci. Celui-ci ayant aussi été une inspiration.
Mais il faut bien avouer que tels quels, aucun de ces deux tutos ne fonctionnent... Il faut chipoter, et parfois faire des concessions. Mon fichier de config LDAP n'est donc pas aussi clean que ceux que l'on peut trouver dans ces deux tutos, les permissions des différentes "tables" (qui sont en fait des 'ou') ne sont pas si claires et il est parfois nécessaire de donner aux utilisateurs plus de permissions qu'on aurait voulu pour que ça fonctionne. Pour ma part, j'y ai vraiment été à la bourrin, et une fois que j'ai vu que certains trucs dégueus marchaient, je m'en suis plus ou moins satifait.
Voici donc mon fichier de config /etc/ldap/slapd.conf, débarassé de ses commentaires pour le rendre plus lisible.
allow bind_v2
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/evolutionperson.schema
schemacheck on
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd.args
loglevel 0
modulepath /usr/lib/ldap
moduleload back_bdb
backend bdb
checkpoint 512 30
database bdb
suffix "dc=frozen-pizza,dc=be"
directory "/var/lib/ldap"
index objectClass eq
lastmod on
access to attrs=userPassword
by dn="cn=admin,dc=frozen-pizza,dc=be" write
by dn="uid=iceman,ou=people,dc=frozen-pizza,dc=be" write
by dn="uid=beto,ou=people,dc=frozen-pizza,dc=be" read
by dn="uid=thom,ou=people,dc=frozen-pizza,dc=be" read
by anonymous auth
by self write
by * none
access to dn.base="dc=frozen-pizza,dc=be" by * read
access to *
by dn="cn=admin,dc=frozen-pizza,dc=be" write
by dn="uid=iceman,ou=people,dc=frozen-pizza,dc=be" write
by dn="uid=beto,ou=people,dc=frozen-pizza,dc=be" write
by dn="uid=thom,ou=people,dc=frozen-pizza,dc=be" write
by * read
access to dn="ou=AddressBook,dc=frozen-pizza,dc=be"
by dn="uid=iceman,ou=people,dc=frozen-pizza,dc=be" write
access to dn="ou=people,dc=frozen-pizza,dc=be"
by dn="uid=iceman,ou=people,dc=frozen-pizza,dc=be" write
# Acces a l'annuaire
access to dn.regex="ou=([^,]+),ou=AddressBook,dc=frozen-pizza,dc=be"
by dn.regex="uid=$1,ou=people,dc=frozen-pizza,dc=be" write
by dn="cn=admin,dc=frozen-pizza,dc=be" write
by self write
by anonymous none
by users none
J'ai aussi utilisé l'interface web phpldapadmin. Il est vrai que le tuto fonctionne plutôt en changeant les fichiers de conf, mais phpldapadmin m'a permis de faire quelques tests quand je n'étais pas sûr des permissions à accorder aux utilisateurs. (Se logguer en tant qu'untel, essayer de créer une entrée dans son carnet d'adresses, etc.)
Le paramétrage d'evolution ne se fait pas non plus sans peine, et j'ai dû plusieurs fois fermer evolution et tuer evolution-data-server pour que ça fonctionne bien...
Quand au paramétrage d'outlook (chez mon frère), il faut dire que je n'y ai pas vraiment mis du coeur: j'ai abandonné après 5 minutes, dégouté par toutes les difficultés que j'avais déjà rencontrées jusque là.
J'ai aussi configuré squirrelmail pour qu'il utilise le LDAP, pour arriver à ce qui est quand même un peu le but d'avoir un annuaire LDAP pour les contacts: pouvoir accéder à ses contacts de partout dans le monde!
Malheureusement, j'étais tellement las du LDAP à ce moment, que je n'ai pas vraiment cherché à faire dans la finesse. J'ai cependant l'impression que squirrelmail ne peut accepter qu'une seule 'ou' comme carnet d'adresses, ce qui m'a conduit à mettre la racine de tous mes carnets d'adresses comme carnet d'adresses. Cela a pour effet qu'on ne peut rajouter des contacts via squirrelmail, et que squirrelmail, (donc tous les utilisateurs) peut accéder en lecture aux contacts de tous les utilisateurs.
Pour clarifier le paragraphe précédent, il semble que squirrelmail ne gère pas plusieurs utilisateurs d'un annuaire LDAP, mais se contente de se connecter sur l'annuaire en utilisant le meme utilisateur pour tout le monde, ce qui est assez gênant dans certains cas. Il faut donc aussi donner les permissions en lecture sur toutes les tables à tout le monde. (Pour moi, ça va.)

via