Connexion site intranet via AD/LDAP svp

Fermé
nolookpass8 Messages postés 7 Date d'inscription mercredi 20 juin 2012 Statut Membre Dernière intervention 25 janvier 2013 - 20 juin 2012 à 16:54
Salut à tous !

Je me suis inspiré de 2 bouts de code puis j'ai adapté à mon cas :


<?php 
$user = htmlentities($_POST["user"]); // Récupération de la variable user 
$pass = htmlentities($_POST["pass"]); // Récupération de la variable pass 
$ds = ldap_connect("adresseIP du serveur ldap");  // On initialise la connexion au domaine (doit être un serveur LDAP valide !) 
$r = ldap_bind($ds,"$user@trem.bod","$pass") or die("Connexion impossible"); // Connexion avec user et pass 
echo "Le résultat de connexion est  $ds "; // On affiche le résultat de la connexion LDAP 
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); //Option à ajoutée si vous utiliser Windows server2k3 
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); //Option à ajoutée si vous utiliser Windows server2k3 

 



et :


<?php 
// informations de connexions, ici user -->> login et pass -->> mot de passe 

$ldap_host = "ipserveur ldap";  // l'adresse du serveur LDAP  
$base_dn = "DC=T***,DC=B**";  // nom du domaine  

$user = "cn=".$_POST['user'];  //  on traite les information recoltées via le formulaire de la page index.php : user et pass 
$password = $_POST['pass'];  

$admin="admin";  // le groupe auquel appartient les admin et les membres 
$membres="membres";   

$connect = ldap_connect($ldap_host)  // connexion en anonymous 
    or exit(">>Connexion au serveur LDAP echoué<<"); 
                  
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);  // on passe le LDAP en version 3, necessaire pour travailler avec le AD 
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0); 
          
$read = ldap_search($connect,$base_dn,$user) // recherche sur le serveur ldap avec paramètres : ad du serveur, domaine et user 
     or exit(">>erreur lors de la recherche<<"); 
$info = ldap_get_entries($connect, $read); // ldap_get_entries : lit toutes les entrées du résultat 

if ( preg_match("!".$admin."!",$info[0]["dn"] ) ){ // si le user trouvé est 1 admin : 
        $bind = ldap_bind($connect,$info[0]["dn"],$password); // ldap_bind : authentification au serveur LDAP 
        if ( $bind == FALSE ){  // si le BIND est FALSE  
                echo 'il est admin mais faux mdp'; // le mot de passe est erronée 
                header("location: index.php"); // redirection vers index.php 
        } 
        elseif ( $bind == TRUE )   // si BIND est TRUE : on peut ajouter d'autre traitement si l'identification est ok ( ex : $_SESSION['user'] = ... ) 
        {    
            echo 'connexion réussie groupe admin'; 
            header("location: saisirAppel.php"); // redirection vers saisirAppel.php 
        } 
} 
elseif ( preg_match("!".$membres."!",$info[0]["dn"]) ) // si le user trouvé est 1 membre : 
{ 
    $bind = ldap_bind($connect,$info[0]["dn"],$password); // authentification au serveur LDAP 
        if ( $bind == FALSE ){  // si le BIND est FALSE 
            echo 'il est membre mais faux mdp'; //le mot de passe est erronée 
            header("location: index.php"); // redirection 
        } 
        elseif ( $bind == TRUE )  // on peut ajouter d'autre traitement si l'identification est ok ( ex : $_SESSION['user'] = ... ) 
        {    
            echo 'connexion réussie groupe membres'; 
            header("location: saisirAppel.php"); // redirection vers saisirAppel.php 
        } 
} 
else // le user n'a pas pu être trouvé 
{ 
    echo 'nom de user invalide'; // afficher user invalide 
    header("location: index.php"); // redirection 
} 
ldap_close($connect); // déconnexion du serveur ldap 

  


et aucun des 2 ne marchent ...

Ma page où il y a le form :


<form action="./connexion/connexionAD.php" method="post"> 
                <label for="user">Login* </label><input type="text" name="user" placeholder="Login"/><br /> 
                <label for="pass">Mot de passe* </label><input type="password" name="pass" placeholder="Mot de passe"/><br /><br /> 
                <input type="submit" class="myButtonSubmit" value="Se connecter" /> 
</form> 

 



Une idée du problème ?