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
impossible que mes utilisateurs s'authentifient via OpenLDAP
bonjour,
es ce que les utilisateurs utilisent nom@domaine.fr ou le nom tout court
es ce que les utilisateurs utilisent nom@domaine.fr ou le nom tout court
OS:Linuxgestsup4.15.0-213-generic#224-
MariaDB:10.4.31-MariaDB-1:10.4.31+maria~ubu1804(base:bsup5245.5Mo)
PHP:8.2.6(/etc/php/8.2/apache2/php.ini)
GestSup:3.2.52(28967tickets/1677utilisateurs/23équipements)
MariaDB:10.4.31-MariaDB-1:10.4.31+maria~ubu1804(base:bsup5245.5Mo)
PHP:8.2.6(/etc/php/8.2/apache2/php.ini)
GestSup:3.2.52(28967tickets/1677utilisateurs/23équipements)
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
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
Apache 2.4.10
Mysql 5.5.50-0+deb8u1
PHP 5.6.24-0+deb8u1
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.
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
Apache 2.4.10
Mysql 5.5.50-0+deb8u1
PHP 5.6.24-0+deb8u1