Page 1 sur 1

impossible que mes utilisateurs s'authentifient via OpenLDAP

Posté : lun. 23 mars 2015 10:42
par benjius
bonjour à tous,

J'ai fini par réussir la connection a mon serveur LDAP (connection anonyme)

Type de serveur LDAP: OpenLDAP
Nom du serveur LDAP: ldap://xxxx.yyyy.zzzz
Port LDAP: 389
Domaine: YYYY,dc=ZZZZZ (suppression du "DC=" du debut ... )
Emplacement des utilisateurs: sn=trucmuche,sn=bidullechouette
utilisateur :
mot de passe :

à partir de la le test de connection est OK
l'import de mes utilisateurs est OK

par contre lorsque mes utilisateurs se connectes il y a un echecs de login ou mot de passe.

Linux gestsup 3.0.10 sur debian 6
Apache 2.2.16
Mysql 5.1.49
PHP 5.3.3

Re: impossible que mes utilisateurs s'authentifient via Open

Posté : lun. 23 mars 2015 12:08
par fabrice
bonjour,
es ce que les utilisateurs utilisent nom@domaine.fr ou le nom tout court

Re: impossible que mes utilisateurs s'authentifient via Open

Posté : lun. 23 mars 2015 16:24
par benjius
en fait pour tout vous dire j'en sais rien et sans doute mon probleme est la ...

comment puis je faire pour vérifier cela ?
j'ai essayer avec un script PHP du style :

// using ldap bind
$ldaprdn = 'login'; // ldap rdn or dn
$ldappass = 'Password'; // associated password

// connect to ldap server
$ldapconn = ldap_connect("xxxx.yyyy.zzzz")
or die("Could not connect to LDAP server.");
// Set some ldap options for talking to
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

if ($ldapconn) {

// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}

}


et j'ai toujours LDAP bind failed ... pourtnat je suis sur que j'ai le bon login et mot de passe

Re: impossible que mes utilisateurs s'authentifient via Open

Posté : mar. 24 mars 2015 14:28
par benjius
JE commence a comprendre le fonctionnement de mon LDAP ...

J'ai du changer quelque ligne de code dans le fichier login.php

tel que :

//Generate DC Chain from domain parameter
$dcpart=explode(".",$domain);
$i=0;
while($i<count($dcpart)) {
if ($i==0) {
$dcgen="dc=$dcpart[$i]";
} else {
$dcgen="$dcgen,dc=$dcpart[$i]";
}
$i++;
}
//$ldapbind = ldap_bind($ldap, "uid=$login,$rparameters[ldap_url]$dcgen", $pass);
$connexion1 = ldap_bind($ldap);
$filtre1 = "uid=".$login;
$attributs1 = array("dn");
$requete1 = ldap_search($ldap, $dcgen, $filtre1, $attributs1);
$info1 = ldap_get_entries($ldap, $requete1);
// Authentification utilisateur
for ($i=0; $i<$info1["count"]; $i++){
$test = $info1["count"];
$dnUser[$i] = $info1[$i]["dn"];
}
$ldapbind=ldap_bind($ldap,$dnUser[0],$pass);


tout d'abord la fonction domain explode avec la boucle while fonctionnait mal car il y avait une virgule en trop en debut de chaine donc j'ai rajouter le if

ensuite il faut d'abord que j'interroge mon LDAP afin de trouver le DN de mon utilisateur à partir du login donc pour cela j'utilise les fonction ldap_search et ldap_get_entries

une fois fait je peux faire mon ldap_bind

donc j'aurai besoin de l'avis d'un expert pour voir si je me suis pas compliqué la tache et surtout si ma modif est compatible avec gestsup.