Attention, cet article est vraiment destiné à des utilisateurs avancés,
qui maîtrisent l’usage de LDAP et souhaitent appuyer SPIP sur un annuaire
LDAP existant.
LDAP (Lightweight Directory Access Protocol) est un protocole permettant d’interroger un annuaire contenant des infos d’utilisateurs (nom, login, authentification...). Depuis la version
[SPIP 1.5] il est possible de vérifier si un rédacteur est dans la base LDAP avant de lui donner accès à l’espace privé.
A l’installation, SPIP détecte si PHP a été compilé avec le support LDAP.
Si oui, à la cinquième étape (créer un accès), un bouton permet d’ajouter
un annuaire LDAP à la configuration SPIP. La
configuration qui suit est relativement simple, elle essaie de deviner
les paramètres au maximum. Notamment, elle permet de choisir le statut
par défaut des auteurs venant de l’annuaire.
Note : si on ne s’en sert pas, PHP n’est généralement pas compilé
avec le support LDAP, donc aucune indication supplémentaire ne viendra
perturber l’installation sur les configurations habituelles.
Les infos de connexion au serveur LDAP sont écrites dans
inc_connect.php3
. Corollaire : il faut supprimer ce fichier
et relancer l’installation pour activer LDAP sur un site SPIP existant.
Dans la table spip_auteurs, est ajouté un champ "source" qui indique
d’où viennent les infos sur l’auteur. Par défaut, c’est "spip", mais
ça peut aussi prendre la valeur "ldap". Ca permet de savoir notamment
quels champs ne doivent pas être changés : en particulier, on ne
doit pas autoriser la modification du login, car sinon il y a une perte
de synchronisation entre SPIP et LDAP.
A l’authentification, les deux méthodes sont testées à la suite :
SPIP puis LDAP. En fait un auteur LDAP ne pourra pas être authentifié
par la méthode SPIP (méthode standard avec challenge md5) car le pass
est laissé vide dans la table spip_auteurs. Un auteur SPIP, quant à
lui, sera authentifié directement depuis la table spip_auteurs.
D’autre part, si le login entré ne vient pas de SPIP, le mot de
passe est transmis en clair.
Quant un auteur LDAP se connecte pour la première fois, son entrée
est ajoutée dans la table spip_auteurs. Les champs remplis sont :
nom, login et email qui viennent de LDAP (champs ’cn’, ’uid’ et
’mail’ respectivement) et le statut dont la valeur par défaut a
été définie à l’installation (rédacteur, admin ou visiteur).
Important : on peut modifier le statut par la suite, afin de
choisir ses admins à la main par exemple.
Une fois un auteur connecté, il est authentifié par la voie classique,
c’est-à-dire simplement avec le cookie de session. Ainsi on ne se
connecte à LDAP que lors du login (spip_cookie.php3). De même, les
infos prises en compte dans l’affichage et les boucles sont celles
de spip_auteurs, pas celles de l’annuaire.
Pour les auteurs SPIP, rien ne change. On peut les créer et les
modifier comme à l’habitude. D’ailleurs,
le premier compte admin sera toujours un compte SPIP (rien n’est
prévu pour créer le premier compte admin depuis LDAP lors de
l’install). C’est préférable pour éviter d’être bloqué en cas
de panne du serveur LDAP.