[Sécurité] Authentification LDAP avec Active Directory
Bonjour à tous,
Je travaille sur une application php/ldap avec comme annuaire active directory. C'est pour moi la première fois que je touche à cela, alors j'avoue être plutôt perdu :?
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <?php
if($saisieEffectuer)
{
$ds=ldap_connect("192.168.41.1");
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
if ($ds)
{
if (ldap_bind($ds))
{
$dn = "cn=$login,dc=loir-et-cher,dc=chambagri,dc=fr";
$value = $pass;
$attr = "userPassword";
$r=ldap_compare($ds, $dn, $attr, $value);
if ($r === -1)
{
echo "Erreur : ".ldap_error($ds);
}
elseif ($r === TRUE)
{
echo "Mot de passe correct";
}
elseif ($r === FALSE)
{
echo "Mot de passe incorrect : ".$value;
}
}
else
{
echo "Impossible de se connecter au serveur LDAP";
}
ldap_close($ds);
}
else
{
echo "Impossible de se connecter au serveur LDAP";
}
}
?> |
Cela me retourne comme erreur :
Citation:
Warning: ldap_compare(): Compare: No such object in /usr/local/apache/htdocs/stocks_conso/index.php on line 18
Vous l'aurez deviné la ligne 18 est :
Code:
$r=ldap_compare($ds, $dn, $attr, $value);
Puisque le code se déroule jusqu'ici je suppose que ma connexion en anonyme s'établie sans problème. Je pense qu'il y'a une erreur au niveau de mon $dn ou $attr.
Mes questions sont :
-De quelle manière puis-je connaître la structure de mon annuaire ? C'est-à-dire comment puis-je connaître le DN à utiliser ?
-Dois-je renseigner l'intégralité des champs (cn=$login,dc=loir-et-cher,dc=chambagri,dc=fr) ou pourrais-je m'en tenir qu'a cn=$login ?
-Et sinon voyez-vous une autre erreur dans le code qui vous saute aux yeux ?
J'ai bien sûr fait des recherches, ce qui m'a d'ailleurs permis d'en arriver à ce code, mais aucun explique comment obtenir le DN.
Voilà je vous remercie énormément par avance, cela fait 3-4 jours que je me prends la tête là-dessus et je n'en peux plus :cry: