LDAP et autre champ de login

Bonjour,

J'utilise l'authentification LDAP avec un SPIP 2.0.9. Notre base LDAP
n'est pas du tout standard, et le champ de « login » porte un nom
parfaitement absurde, par exemple « lapin ».

Pour que ça fonctionne, j'ai donc modifié le fichier ecrire/auth/ldap.php :

==============
--- ecrire/auth/ldap.php (révision 14603)
+++ ecrire/auth/ldap.php (copie de travail)
@@ -49,7 +49,7 @@
   $ldap_base = $ldap['base'];

   // Attributs testes pour egalite avec le login
- $atts = array('sAMAccountName', 'uid', 'login', 'userid', 'cn', 'sn');
+ $atts = array('sAMAccountName', 'uid', 'login', 'userid', 'cn',
'sn','lapin');
   $login_search = preg_replace("/[^-@._\s\d\w]/", "", $login); // securite

Je n'aime pas trop cette solution (le code peut être cassé à chaque
nouvelle version de SPIP), et j'aurais aimé par exemple passer par un
plugin (développé par mes soins), ou par surcharge d'une fonction dans
mes_options.php. Est-ce que je peux modifier la liste des attributs de
login de cette manière ? Est-ce que l'un de vous a déjà fait ça ?

Amicalement,
--
Trois Singes

Le 13/10/2009 15:13, Trois Singes a écrit :

Bonjour,

J'utilise l'authentification LDAP avec un SPIP 2.0.9. Notre base LDAP
n'est pas du tout standard, et le champ de « login » porte un nom
parfaitement absurde, par exemple « lapin ».

Pour que ça fonctionne, j'ai donc modifié le fichier ecrire/auth/ldap.php :

==============
--- ecrire/auth/ldap.php (révision 14603)
+++ ecrire/auth/ldap.php (copie de travail)
@@ -49,7 +49,7 @@
    $ldap_base = $ldap['base'];

    // Attributs testes pour egalite avec le login
- $atts = array('sAMAccountName', 'uid', 'login', 'userid', 'cn', 'sn');
+ $atts = array('sAMAccountName', 'uid', 'login', 'userid', 'cn',
'sn','lapin');
    $login_search = preg_replace("/[^-@._\s\d\w]/", "", $login); // securite

Je n'aime pas trop cette solution (le code peut être cassé à chaque
nouvelle version de SPIP), et j'aurais aimé par exemple passer par un
plugin (développé par mes soins), ou par surcharge d'une fonction dans
mes_options.php. Est-ce que je peux modifier la liste des attributs de
login de cette manière ? Est-ce que l'un de vous a déjà fait ça ?

Amicalement,

En SPIP 2.0.x tu peux rajouter une méthode d'identification ( qui peut-être un fork de l'authentification LDAP )

regarde de plyus près le fichier ecrire/inc_version.php Ligne 353

// liste des methodes d'authentifications
$liste_des_authentifications = array(
      'spip'=>'spip',
      'ldap'=>'ldap'
);

il te suffit dans mes_options.php de passer un autre tableau que celui la, du genre

// liste des methodes d'authentifications
$liste_des_authentifications = array(
      'spip'=>'spip',
      'tonldap'=>'tonldap'
);

et d'avoir un fichier squelettes/auth/tonldap.php avec une fonction auth_tonldap()
et si tu fais ca dans un plugin le fichier sera plugins/tonldap/auth/tonldap.php ...

Voila pour le principe général :slight_smile:
a toi d'adapter la méthode d'indentification ldap pour coller au mieux a ton organisation de ton ldap.

a+

Yoann Nogues a écrit :

il te suffit dans mes_options.php de passer un autre tableau que celui
la, du genre

// liste des methodes d'authentifications
$liste_des_authentifications = array(
            'spip'=>'spip',
            'tonldap'=>'tonldap'
);

et d'avoir un fichier squelettes/auth/tonldap.php avec une fonction
auth_tonldap()
et si tu fais ca dans un plugin le fichier sera
plugins/tonldap/auth/tonldap.php ...

Merci pour ta réponse. C'est très intéressant. Cela veut dire que je
peux utiliser n'importe quelle méthode, et pas seulement celle de SPIP
ou LDAP (par exemple utiliser les comptes d'un wiki).

Pour "seulement" ajouter un champ de login à LDAP, en revanche, c'est
peut-être un peu lourd (ça empêche une certaine réutilisation du code
LDAP de SPIP puisqu'il faut le recopier). Ça va cependant le faire, en
attendant l'éventuel pipeline qui fera mieux !

Encore merci !
--
Trois Singes

Trois Singes a écrit :

Yoann Nogues a écrit :

il te suffit dans mes_options.php de passer un autre tableau que celui
la, du genre

// liste des methodes d'authentifications
$liste_des_authentifications = array(
            'spip'=>'spip',
            'tonldap'=>'tonldap'
);

et d'avoir un fichier squelettes/auth/tonldap.php avec une fonction
auth_tonldap()
et si tu fais ca dans un plugin le fichier sera
plugins/tonldap/auth/tonldap.php ...

Merci pour ta réponse. C'est très intéressant. Cela veut dire que je
peux utiliser n'importe quelle méthode, et pas seulement celle de SPIP
ou LDAP (par exemple utiliser les comptes d'un wiki).

Pour "seulement" ajouter un champ de login à LDAP, en revanche, c'est
peut-être un peu lourd (ça empêche une certaine réutilisation du code
LDAP de SPIP puisqu'il faut le recopier). Ça va cependant le faire, en
attendant l'éventuel pipeline qui fera mieux !

Encore merci !

pourquoi n'utilises tu pas le plugin ldap++ sur contrib ?

phil93 a écrit :

Trois Singes a écrit :

Yoann Nogues a écrit :

il te suffit dans mes_options.php de passer un autre tableau que celui
la, du genre

// liste des methodes d'authentifications
$liste_des_authentifications = array(
            'spip'=>'spip',
            'tonldap'=>'tonldap'
);

et d'avoir un fichier squelettes/auth/tonldap.php avec une fonction
auth_tonldap()
et si tu fais ca dans un plugin le fichier sera
plugins/tonldap/auth/tonldap.php ...

Merci pour ta réponse. C'est très intéressant. Cela veut dire que je
peux utiliser n'importe quelle méthode, et pas seulement celle de SPIP
ou LDAP (par exemple utiliser les comptes d'un wiki).

Pour "seulement" ajouter un champ de login à LDAP, en revanche, c'est
peut-être un peu lourd (ça empêche une certaine réutilisation du code
LDAP de SPIP puisqu'il faut le recopier). Ça va cependant le faire, en
attendant l'éventuel pipeline qui fera mieux !

Encore merci !

pourquoi n'utilises tu pas le plugin ldap++ sur contrib ?

C'est à dire ?

Personnellement, je n'ai pas compris comment, par exemple, dire à SPIP de ne pas interroger le champs "sAMAccountName" à travers ce plugin LDAP++.
Ai-je loupé quelque chose ?

Cordialement,
Olivier Gautier.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

phil93 a écrit :

pourquoi n'utilises tu pas le plugin ldap++ sur contrib ?

Sans doute parce que je n'ai pas assez cherché :slight_smile:

Merci pour le conseil ! Ça me permettra aussi de regarder comment il a
été fait.

--
Trois Singes