Le support LDAP

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 informations d’utilisateurs (nom, login, authentification...). Il est possible de vérifier si un rédacteur est dans la base LDAP avant de lui donner accès à l’espace privé.

À 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 : ceux-ci peuvent être rédacteurs (conseillé), administrateurs ou simples visiteurs.

Note : par défaut, l’extension LDAP de PHP n’est généralement pas activée, donc SPIP n’affichera pas le formulaire correspondant lors de l’installation. Pensez à activer l’extension LDAP dans votre installation de PHP si vous voulez utiliser LDAP avec SPIP.

Si SPIP est déjà installé et que vous voulez configurer l’annuaire LDAP, il faudra reprendre l’installation en effaçant le fichier config/connect.php.

Une fois la configuration correctement effectuée, tous les utilisateurs de l’annuaire LDAP seront identifiés en tapant leur login (ou nom) dans l’annuaire LDAP, puis leur mot de passe. Notez que cela n’empêche pas de créer directement des auteurs dans SPIP ; ces auteurs ne seront pas recopiés dans l’annuaire mais gérés directement par SPIP. D’autre part les informations personnelles (biographie, clé PGP...) des auteurs authentifiés depuis LDAP ne seront pas non plus recopiées dans l’annuaire. Ainsi SPIP n’a besoin que d’un accès en lecture seule à l’annuaire LDAP.

Important : créez toujours un premier administrateur « normal » (non LDAP) lors de l’installation de SPIP. C’est préférable pour éviter d’être bloqué en cas de panne du serveur LDAP.

Pour en savoir plus

Les infos de connexion au serveur LDAP sont écrites dans connect.php. 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.

À 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.

Quand 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) [1] 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. 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.

Notes

[1En complément de ces 3 champs, SPIP propose en option lors de l’installation en mode LDAP, de remplir le champ "bio" pour recevoir les informations issues du champs "description" généralement.
La valeur récupérée par SPIP depuis le LDAP, lors de la première connexion, ne sera pas mise à jour par la suite.

Auteur L’équipe de SPIP Publié le : Mis à jour : 30/06/23

Traductions : عربي, català, English, Español, français, italiano, Nederlands