impossible que mes utilisateurs s'authentifient via OpenLDAP

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
Répondre
benjius
Gsup LEVEL 0
Messages : 4
Enregistré le : lun. 23 mars 2015 10:29

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
Linux gestsup 3.1.9 sur debian 8
Apache 2.4.10
Mysql 5.5.50-0+deb8u1
PHP 5.6.24-0+deb8u1
fabrice
Gsup LEVEL 7
Messages : 327
Enregistré le : mar. 11 mars 2014 12:01

bonjour,
es ce que les utilisateurs utilisent nom@domaine.fr ou le nom tout court
OS : Linux gestsup 4.15.0-158-generic #166-Ubuntu SMP Fri Sep 17 19:37:52 UTC 2021 x86_64
MariaDB : 10.4.21-MariaDB-1:10.4.21+maria~bionic (base : bsup 183.8MB)
PHP : 7.3.30-1+ubuntu18.04.1+deb.sury.org+1
GestSup : 3.2.15 (8871 Tickets)
benjius
Gsup LEVEL 0
Messages : 4
Enregistré le : lun. 23 mars 2015 10:29

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
Linux gestsup 3.1.9 sur debian 8
Apache 2.4.10
Mysql 5.5.50-0+deb8u1
PHP 5.6.24-0+deb8u1
benjius
Gsup LEVEL 0
Messages : 4
Enregistré le : lun. 23 mars 2015 10:29

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.
Linux gestsup 3.1.9 sur debian 8
Apache 2.4.10
Mysql 5.5.50-0+deb8u1
PHP 5.6.24-0+deb8u1
Répondre