Créé le : 3 octobre 2017
Catégorie: Non classé
Mise à jour : 3 octobre 2017

[PHP] recherches LDAP en PHP

closeCet article a été publié il y a 1 an 20 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Affichage des attributs LDAP d’une seule entrée

// votre serveur ldap
$ds = ldap_connect( "server.domaine.fr" ) ; 


 //Objet sur lequel extraire les attributs
  $dn = "CN=User NOM,OU=TUTU,O=Titi";
 
//sélection du type d'objet (ici tout)
  $filter="(objectclass=*)"; 
  
  //Attributs a extraire, c'est + efficace de sélectionner uniquement les attributs utile
  //Dans cet exemple tous les attributs sont extraits
      //$justthese = array("ou", "sn", "givenname", "mail"); 
      //$sr=ldap_read($ds, $dn, $filter, $justthese);
            $sr=ldap_read($ds, $dn, $filter);
            $entry = ldap_get_entries($ds, $sr);

//Affichage des attributs		  
echo "email = ".$entry[0]["mail"][0] . "<br>
      site  = ".$entry[0]["l"][0].'<br>
	  cn1    = '.$entry[0]["cn"][0].'<br>
	  cn2    = '.$entry[0]["cn"][1].'<br>';
//fermeture de la connexion
ldap_close($ds);

affichage selon critère de recherche (=liste)

Cet exemple fait une recherche dans l’annuaire LDAP sur tous les noms de famille commençant par B
Une boucle affiche ensuite les attributs demandés


//=====connection LDAP
$ds = ldap_connect( "serveur.domaine.fr" ) ;  // must be a valid LDAP server!
//echo "connect result is " . $ds . "<br />";

if ($ds) { 
    //=====authentification user (sinon anonymous)
    $r=ldap_bind($ds,"CN=Bruce WAYNE,OU=Gottham,O=USA","password");
                           // read-only access
    //echo "Bind result is " . $r . "<br />";

    
    //=====recherche sur nom de famille seulement (on peut mettre "sn=*")
    $sr=ldap_search($ds, "o=LGCF", "sn=B*");  
    
	//=====affiche nb résultats
    echo "Nombre de résultats =  " . ldap_count_entries($ds, $sr) . "<br />";

    
	//===== nb resultat (autre)
    $info = ldap_get_entries($ds, $sr);
    echo "Données pour les " . $info["count"] . " entrées trouvées<p>";

	
	//===== boucle affichage résultats
    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn = " . $info[$i]["dn"] . "<br />";
        echo "nom convivial = " . $info[$i]["cn"][0] . "<br />";
		echo "Responsable = " . $info[$i]["manager"][0] . "<br />";
		echo "Serveur = " . $info[$i]["mailserver"][0] . "<br />";
		echo "titre = " . strtolower( $info[$i]["title"][0] ) . "<br />";
        echo "email = " . $info[$i]["mail"][0] . "<br /><hr />";
    }

	
	//===== fermeture connexion
    
    ldap_close($ds);

} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}



Laissez un commentaire