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 50 51 52 53 54 55 56 57 58
|
<?php
$login = $_POST['user']; //le login
tester
$pass = $_POST['pass']; //le mot de passe
tester
$host = "ldap://xxxxxx.yyyyyyyy"; //le serveur ldap, port 389
$attr = "userPassword";
$ldapcnx = @ldap_connect($host)
or die('Impossible de se connecter au serveur LDAP.');
ldap_set_option($ldapcnx, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapcnx, LDAP_OPT_REFERRALS, 0);
if ($ds) {
if (ldap_bind($ldapcnx)) {
//login représente le login de la personne qui veut se connecter
$dn="o=gouv,c=fr";
// $mot de passe contient le mdp à vérifier, ds est ta connexion ldap
$requete=ldap_compare($ldapcnx, $dn, $attr, $pass);
if ($requete === -1) {
echo "Erreur";
} elseif ($requete === TRUE) {
echo "Mot de passe correct.";
} elseif ($requete === FALSE) {
echo "Mal choisi! Mot de passe incorrect!";
}
} else {
echo "Impossible de se connecter au serveur LDAP.";
}
//Je commence par un bind simple et anonyme
if (ldap_bind($ldapcnx)) {
//
partir du login (uid) je vais chercher le dn correspondent
$sr = ldap_search ($ldapcnx,'o=gouv,c=fr', 'uid='.$login);
$info = ldap_get_entries($ldapcnx, $sr);
//je test si je trouve bien un resultat
if ($info['count'] == 0) {
//Pas de resultat, donc on stoppe le traitement
echo 'compte inexistant !!';
}
else {
//Il y a un resultat, j'effectue un second bind mais cette fois
//j'utilise le dn et le mot de passe saisi
if (ldap_bind($ldapcnx,$info[0]['dn'],$pass)) {
header("location: boninter.php");
}
else {
echo 'saisie incorrecte !!';
}
}
}
else {
echo 'connexion LDAP impossible !';
}
ldap_close($ldapcnx);
}
?> |
Partager