Spip et l’authentification LDAP
Spip permet d’authentifier les auteurs du site sur un annuaire LDAP. Ainsi, l’auteur n’a pas besoin de mémoriser un nouveau couple login/mot de passe d’identification pour accéder à l’interface d’administration du site.
Une fois la première authentification réussi, l’auteur est alors référencé dans la base de données de Spip avec le droit d’accès par défaut tel que défini à la configuration du site. On peut alors modifier ses droits d’accès sur le site.
Plus d’information sur l’accès LDAP ici.
Objectif du plugin
Ce plugin permet à partir d’une recherche sur l’annuaire LDAP de « pré-enregistrer » les auteurs.
Ainsi, l’administrateur du site peut commencer à attribuer des droits personnalisés sans avoir a attendre la première connexion de l’auteur.
Versions du plugin
Ce plugin est disponible :
- en version stable pour SPIP 1.9,
- en version de test (depuis le 25 janvier 2009) pour SPIP 2.0.
Pré-requis
Un site Spip avec l’accès LDAP configuré.
Installation
- Télécharger le plugin pour la version de Spip utilisée (voir les « Documents joints » ci-dessous).
- Se reporter à la page http://www.spip.net/fr_article3396.html pour l’installation
Utilisation
Une fois le plugin activé, se connecter en tant qu’administrateur du site. Dans le sous-menu « Auteurs », le logo du plugin doit apparaître.
- Etape 1
Saisissez le filtre Ldap a utiliser pour la recherche.
Attention !!! Des filtres comme (objectClass=*) renvoient l’ensemble des entrées LDAP.
Quelques exemples de filtres :
| Filtre | Commentaire |
|---|---|
| (mail=*@domaine.net) | Toutes les entrées dont l’attribut mail fini par @domaine.net |
| (&(l=Toulon)(objectClass=person)) | Toutes les entrées de type « person » dont la localisation est Toulon |
| (ou=Service*) | Toutes les entrées appartenant au service « Service » |
Contacter votre responsable d’annuaire pour avoir les spécifications complètes des schémas utilisés.
Dans un but de performance, il est conseillé de se baser sur des attributs indexés.
- Etape 2
L’étape 2 vous présente la liste des entrées Ldap qui corrspondent au critère de recherche.
Vous avez la possibilité de valider le filtre (ajouter toutes les entrées comme auteur), ou sélectionner individuellement les entrées qui vous intéressent pour les ajouter en tant qu’auteur.
- Etape 3
Cette étape vous présente un compte-rendu des actions opérées.
L’animation flash ci-dessous montre un exemple d’utilisation
Limitations
- Si l’attribut mail est multivalué, des incohérences de données peuvent se produire.
- Le plugin a fonctionné correctement lors de l’importation de 600 auteurs. Le service Ldap (slapd) étant hébergé sur la même machine que le serveur Web.
Prévision d’évolutions
- Attribuer un droit différent de celui défini lors de la configuration de l’accès Ldap.
- Notifier les nouveaux inscrits par email.




Utilisation du plugin Peuplement LDAP
Le plugin pour Spip 1.9 (version stable)
Historique des modifications sur le repository de développement
Vos commentaires
# Le 19 janvier 2011 à 06:52, par patrice47310
En réponse à : Peuplement LDAP
Bonjour,
J’ai trouvé un lien avec les modifs
https://www.assembla.com/code/spip-zone/git/changesets/014cdaaf49f616d2a085f3e0cc778cffe22e0066
# Le 24 janvier 2011 à 18:05, par th
En réponse à : Peuplement LDAP
cool ça marche pour 2.1.8
Adaptation du peuplement LDAP à SPIP 2.0.10 (disparition de auth_ldap_inserer, trop restrictive).
c’est la fonction ci-dessous qui est modifiee dans :
Peuplement_LDAP/inc/peuplement_ldap_common.php
/**
* Insère les entrées
* Retourne le résultat de l'insertion :
* 0 Echec
* 1 Identifiant existant déjà
* 2 Ok
*/
function insere_auteur($dn,$mail){
// Controle qu'un identifiant de connexion identique ne soit pas déjà présent
if (sql_countsel("spip_auteurs","email=".sql_quote(strtolower($mail))))
return 1;
if ($GLOBALS['meta']["ldap_statut_import"]
AND $desc = auth_ldap_retrouver($dn, array('login' => 'uid', 'nom' => 'cn', 'email' => 'mail'))) {
// rajouter le statut indique a l'install
$desc['statut'] = $GLOBALS['meta']["ldap_statut_import"];
$desc['source'] = 'ldap';
$desc['pass'] = '';
if (sql_insertq('spip_auteurs', $desc)) return 2;
}
return 0;
}
le fichier entier ici : https://www.assembla.com/code/spip-zone/git/nodes/_plugins_/Peuplement_LDAP/spip-2.0/Peuplement_LDAP/inc/peuplement_ldap_common.php?rev=014cdaaf49f616d2a085f3e0cc778cffe22e0066
# Le 20 avril 2011 à 17:41, par phil93
En réponse à : Peuplement LDAP
bizarre de mon coté avec les modifs proposées ca ne fonctionne pas bien
les auteurs sont bien importés je ne récupère ni le login , ni la bio. ce qui rend les authentifications impossibles
# Le 20 avril 2011 à 18:50, par th
En réponse à : Peuplement LDAP
Ton authentification marche bien sur le ldap ? (sans imports)
# Le 21 avril 2011 à 10:28, par ?
En réponse à : Peuplement LDAP
oui après vérification sur spip 2.0 et spip 2.1.10
meme les champs étendus sont importés avec spip 2.1
Répondre à ce message
# Le 17 janvier 2011 à 17:05, par patrice47310
En réponse à : Peuplement LDAP
Bonjour,
après avoir coché les entrées et cliqué sur le bouton Valider la sélection, j’obtiens une erreur :
Fatal error : Call to undefined function auth_ldap_inserer() in /var/www/plugins/Peuplement_LDAP/inc/peuplement_ldap_common.php on line 140
pb de lien impossible de récupérer la modif
Est que quelqu’un pourrait la mettre à disposition
merci
Répondre à ce message
# Le 28 octobre 2010 à 17:25, par richard
En réponse à : Peuplement LDAP
Bonjour,
Suite à l’installation de SPIP 2.1.2 et du plugin ’Peuplement Ldap’, je n’arrive pas à accéder à l’interface de configuration et j’ai le message suivant :
Fichier configurer_PeuplementLdap introuvable
Donc je ne peux pas aller plus loin pour avec le plugin ’Ldap++’ !!! je voulais exploiter et profiter de mon annuaire LDAP en place...
Merci de me dire si vous avez une idée !
Cordialement,
Richard
Répondre à ce message
# Le 20 août 2010 à 17:56, par phil93
En réponse à : Peuplement LDAP
je viens de le tester avec spip 2.1.1
ca fonctionne bien
en liaison avec ldap++ et groupes_auteurs2 version spip2.1.1 (bientot sur contrib) c’est super
Répondre à ce message
# Le 20 mai 2010 à 15:30, par Spipeur_Debutant
En réponse à : Peuplement LDAP
Bonjour,
J’utilise SPIP 2.1, j’ai installé le plugin, mais il est impossible quelque soit mon filtre de le faire fonctionner, ma connexion au serveur ldap échoue.
Ce plugin fonctionne t il si mon ldap est sur une autre machine ? Si oui, comment lui donner l’adresse IP du serveur et lui préciser le dn ?
Merci
# Le 17 juin 2010 à 17:15, par Spipeur_Debutant
En réponse à : Peuplement LDAP
Bonjour,
Bon il fonctionne correctement. Il fallait repartir depuis l’installation pour activer le ldap.
Maintenant mon souci est que je me retrouve avec des fois des utilisateurs en doublons après importation depuis mon LDAP, pourtant je n’ai pas de doublons dans LDAP. De ce fait, vu qu’ils auront un accès restreint, ça pose souci.
Pour certains utilisateurs, quand je fais modifier auteur, il n’y a rien dans le login du user et du coup, il ne peuvent pas se connecter. Et pour d’autres j’ai bien un login (cn du ldap).
Que faire ?
Merci
# Le 22 juin 2010 à 13:31, par Spipeur_Debutant
En réponse à : Peuplement LDAP
Personne n’a d’idées ?
Répondre à ce message
# Le 7 février 2010 à 10:54, par Arale
En réponse à : pas de liste
Bonjour,
Je suis novice et j’essaye d’utiliser le plugin peuplement ldap.
J’utilise spip 2.0.10 et le plugin pour 2.0.
L’installation de spip avec ldap c’est bien passé.
Dans l’espace privé j’ai bien le plugin dans le menu auteur.
Par contre si je lance le filtre (mail=*), il n’y a aucun résultat d’affiché...
Je ne comprends pas, normallement tout le contenu du répertoire ldap devrait s’afficher, non ?
Est ce que j’aurais oublié qq chose ?
Faut-il une config speciale ?
Pour info, j’ai refusé l’inscription des visiteurs et des auteurs.
Merci de votre aide.
Arale
# Le 14 février 2010 à 15:24, par fleg
En réponse à : pas de liste
Même symptôme sous 2.0.10 ! Installation ok, mais le filtre ne semble pas se déclencher (je clique sur valider mais rien ne se passe) !
# Le 15 février 2010 à 20:22, par Benjamin Revel
En réponse à : pas de liste
Bonjour,
même sans la modification nécessaire pour Spip 2, la liste des entrées Ldap correspondant au filtre devrait apparaître...
- Est-ce que l’accès Ldap est bien configuré ? (un compte de l’annuaire peut-il s’authentifier ?)
- Est-ce qu’avec un client Ldap (la commande ldapsearch par exemple), le filtre fonctionne bien ?
Cordialement.
# Le 16 février 2010 à 14:34, par Arale
En réponse à : pas de liste
En effet, une personne de l’annuaire ne peut pas se connecter. Je vais regarder d’ou ca peut venir.
# Le 17 février 2010 à 16:34, par fleg
En réponse à : pas de liste
C’est la version pour spip 2 qui est installée en auto.
Oui
Oui
# Le 18 février 2010 à 17:47, par fleg
En réponse à : pas de liste
Bon, j’ai un premier élément de réponse...
En fait, mon serveur web est situé derrière un reverse proxy (RP).
Et quand j’attaque directement le serveur web physique, le plugin fonctionne, alors que si je passe par le RP rien ne s’affiche !
Est-ce que quelqu’un aurait une idée de ce qui « cloche », sachant que la traversée du RP est à priori transparente et que d’ailleurs tout le reste du site fonctionne normalement (ce qui laisse supposer que c’est une spécificité du fonctionnement du plugin qui fait que ça marche pas dans ce cas là).
# Le 18 février 2010 à 19:22, par Benjamin Revel
En réponse à : pas de liste
Le RP fait-il du cache ?
L’url pour les trois étapes de l’importation des auteurs est la même : #URL_SITE_SPIP/ecrire/ ?exec=peuplement_ldap .
D’après votre premier post, on dirait que la page est prise dans le cache : « (je clique sur valider mais rien ne se passe) » .
Vous utilisez le mod_proxy d’Apache (et si oui, quelle version d’Apache) ?
# Le 19 février 2010 à 12:06, par fleg
En réponse à : pas de liste
Bon, j’ai trouvé !!!! (ça m’a pris du temps mais bon)...
Dans le fichier inc/peuplement_ldap_common.php ligne 20 il y a une faute de html (sans doute de frappe) :
echo "<form action=\"".generer_url_ecrire("peuplement_ldap")."\" method=\"post\" />";le dernier / à la fin n’est pas conforme ! Il indique en effet que la balise est ouvrante et fermante en même temps, ce qui n’est pas le cas car il y a une balise fermante
plus bas. Du coup le html généré n’est pas conforme.
Le module mod_proxy_html corrige les pages automatiquement (j’y peux rien, même si je trouve ça un peu trop intrusif) et du coup il remplace le
/>par></form>ce qui fait que le bouton de validation se retrouve hors formulaire et donc sans effet !Voila, une petite correction de pas grand chose !
F.
# Le 12 avril 2010 à 02:31, par francis
En réponse à : Peuplement LDAP
j’ai testé sur spip 2.1
L’authentification ldap installée, fonctionnelle, je n’arrive à rien obtenir via ce plugins.
J’obtiens le message suivant :
Fatal error : Call to undefined function auth_ldap_connect() in /home/kwartz/www/extranetwork/ecrire/base/connect_sql.php on line 220
voici les lignes 217 à 220
// compatibilite
function spip_connect_ldap($serveur=’’)
include_spip(’auth/ldap’) ;
return auth_ldap_connect($serveur) ;
Si quelqu’un a une idée du bug ??
Problème résolu ; incompatibilité avec ldap++ !
# Le 5 mai 2010 à 12:49, par Paddle
En réponse à : Peuplement LDAP
en fait, ce n’est pas un bug.
le include_spip(auth/ldap) va chercher le premier fichier ldap.php dans un répertoire auth.
Il se trouve que ce fichier sera plugin/auto/ldap_plus_plus/auth/ldap.php au lieu de ecrire/auth/ldap.php qui lui contient bien la fonction.
En attendant de faire mieux, j’ai simplement copié la fonction attendue dans le fichier ldap.php du plugin ldap++ et tout re-fonctionne bien. Par contre, ce n’est pas très propre.
# Le 19 mai 2010 à 11:49, par yann
En réponse à : Peuplement LDAP
J ai un problème avec la version 2.1 ...
au moment d’ajouter l’utilisateur il y a l erreur suivante « ..... Call to undefined function auth_ldap_inserer() ..... »
En effet la fonction auth_ldap_inserer a ete supprimé dans la v 2.1 ... mais comment on insert un utilisateur alors ???
Répondre à ce message
# Le 9 novembre 2009 à 11:52, par Xavier
En réponse à : Peuplement LDAP
Salut
Sur un SPIP 2.0.10 [14698], avec le plugin peuplement ldap (dispo sur cette page) activé, après avoir coché des entrées et cliqué sur le bouton Valider la sélection, j’obtiens une erreur :
Fatal error : Call to undefined function auth_ldap_inserer() in /var/www/plugins/Peuplement_LDAP/inc/peuplement_ldap_common.php on line 140
Quelq’un a-t-il déjà eu cette erreur ? comment peux-t-on la résoudre
Merci
# Le 9 novembre 2009 à 15:04, par Déesse A.
En réponse à : Peuplement LDAP
Cette fonction a disparu lors du dépôt 14622, qui vise à optimiser le nombre de requêtes infructueuses au serveur LDAP. Il faudrait que l’auteur de ce plugin remplace l’appel à cette fonction par sa définition, très courte, qu’on peut retrouver dans les anciennes versions.Du coup, le plugin sera compatible avec toutes les versions 2.0.
# Le 10 novembre 2009 à 18:28, par Déesse A.
En réponse à : Peuplement LDAP
Bon, j’ai fait la modif à récupérer ici,
en espérant que j’ai bien compris de quoi il retournait. En l’état ce ne sera pas compatible avec les versions antérieures, il y a plus de boulot à faire.
# Le 10 novembre 2009 à 19:15, par Xavier
En réponse à : Peuplement LDAP
Super
Merci pour la correction, elle fonctionne parfaitement
# Le 29 janvier 2010 à 11:01, par ?
En réponse à : Peuplement LDAP
Bonjour,
J’ai tenté de récupérer le correctif mais il semble avoir disparu du site :
Est-ce qu’il serait possible de l’avoir par un autre moyen ?
Cordialement,
Juliette
Répondre à ce message
# Le 5 juillet 2009 à 12:28, par philippelara
En réponse à : Peuplement LDAP
je viens de le tester sur un spip 2.08 ca marche !
je suis en train de le faire évoluer pour élargir son fonctionnement a un nombre de champs plus large et surtout plus souple comme le fait par exemple GLPI.
cela intégrera la récupération des groupes LDAP (memberof) en liaison avec le plugin inscription2 et donc la création de groupes d’auteurs, il sera ensuite relié a accès restreint pour donner accès a des zones en fonctions de profils définis.
Répondre à ce message
# Le 12 janvier 2009 à 17:20, par Fiprotec
En réponse à : Peuplement LDAP avec SPIP 2.0.3 ??
Bonjour,
J’ai testé votre plugin avec la version 2.0.3 se SPIP : cela ne fonctionne pas.
L’icone n’apparait pas dans le menu « Auteurs » et dans l’interface d’admin il semble qu’il manque le fichier « system-users.png »
Pensez-vous développer une version compatible avec la version 2.0.3 de Spip car ce plugin est vraiment génial !
Merci pour votre aide
Cordialement
# Le 13 janvier 2009 à 20:48, par Benjamin Revel
En réponse à : Peuplement LDAP avec SPIP 2.0.3 ??
Bonjour et meilleurs voeux pour 2009.
Oui, je compte bien continuer à travailler sur ce plugin et l’adapter pour Spip 2.x.
Actuellement, mon temps libre est pris par d’autres occupations mais j’espère m’y remettre d’ici peu de temps.
Merci pour ces encouragements.
# Le 19 janvier 2009 à 09:49, par Fiprotec
En réponse à : Peuplement LDAP avec SPIP 2.0.3 ??
Bonjour,
Je reste « aware » sur le dvlpt de votre plugin, car pour ne rien vous cacher j’attends qu’il soit compatible avec la v2.0.3 pour migrer mes sites avec cette version de SPIP.
Cordialement
Répondre à ce message
# Le 2 décembre 2008 à 16:30, par jerome
En réponse à : Peuplement LDAP
bonjour
Je suis en train de tester ce plugin
Dans peuplement_ldap.php dans les includes de début de fichier qui permet de faire la surcharge de code
ligne 7
include_spip(’inc/auth_ldap’) ;
au lieu de
include_spip(’inc/auth_ldap.php’) ;
# Le 3 décembre 2008 à 15:21, par Benjamin Revel
En réponse à : Peuplement LDAP
Oups...oui.
Merci pour la vigilance, je corrige ça au plus vite.
Répondre à ce message