web-dev-qa-db-fra.com

Erreur d'opérations LDAP

J'ai un problème avec la connexion LDAP.

$hostname="ldap://sub.domain.com";
$ds=ldap_connect($hostname, 389);
ldap_set_option ($ds, LDAP_OPT_REFERRALS, 0) or die('Unable to set LDAP opt referrals');
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version');

if ($ds)
{
$dn = "OU=Users,OU=ro,DC=sub,DC=domain,DC=com";

if (!($ldapc=ldap_bind($ds))) { 
    echo "<p>Error:" . ldap_error($ds) . "</p>"; 
    echo "<p>Error number:" . ldap_errno($ds) . "</p>"; 
    echo "<p>Error:" . ldap_err2str(ldap_errno($ds)) . "</p>"; 
    die;
} 

$attributes = array("sn");
$filter = "(sn=*)";
$result = ldap_search($ds, $dn, $filter, $attributes);

echo $result;
$info = ldap_get_entries($ds, $result);
for ($i=0; $i < $info["count"]; $i++) {
    echo $info[$i]["ou"][0];
}
} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}

ldap_unbind($ds);

Le ldap toute connexion anonyme fonctionne car je le teste dans un navigateur AD et tout va bien. Dans ce code, il s'arrête à

ldap_search($ds, $dn, $filter, $attributes);

Je reçois l'avertissement:

Avertissement: ldap_search (): Recherche: erreur d'opérations dans ..\index.php sur la ligne 38

Je ne sais pas vraiment quelle peut être la cause de cette erreur, j'apprécie votre aide.

18
Dogaru Ionut

Pour le retirer de la liste sans réponse:


J'ai trouvé le problème, c'était le problème de liaison. Le serveur accepte la liaison anonyme mais pas la recherche. Et avec un utilisateur et un pass a fonctionné mais je faisais une erreur. Pour l'utilisateur, je n'ai considéré que le nom d'utilisateur de Windows et non pas l'emplacement complet de AD, maintenant cela fonctionne.

23
cweiske

J'ai eu ce problème, mais j'ai été correctement lié à un utilisateur autorisé à rechercher.

Je l'ai résolu en configurant cette option pour fonctionner avec Active Directory:

ldap_set_option($connection, LDAP_OPT_REFERRALS, 0);
10
Tanariel