Aller au contenu

connection à un serveur ldap


Sujets conseillés

Posté

Bonjour,

J'ia une question concernant l'intéraction entre php et un serveur ldap.

Supposons que mon serveur a la config suivante:

login: admin

pwd: adminpwd

Le serveur est sur ma machine dont l'hôte est localhost.

Voici mon code php actuellement:

CODE

// config

$server = "localhost";

$port = 389;

$racine = "dc=elodig,dc=fr";

$rootdn = "cn=admin,dc=elodig,dc=fr";

$rootpw = "adminpwd";

$version = 3;

// connection

$ds=ldap_connect($server);

if ($ds)

{

if(!ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version))

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

$r=ldap_bind($ds,$rootdn,$rootpw);

$entry["cn"]="Robert Toto";

$entry["sn"]="Toto";

$entry["mail"][0]="robert.toto_AT_elolo.fr";

$entry["mail"][1]="robert.toto_AT_gmail.com";

$entry["objectclass"][0] = "person";

$entry["objectclass"][1] = "test";

$entry["objectclass"][2] = "test2";

$entry["objectclass"][3] = "test3";

// insert data into the ldap server

$r=ldap_add($ds, "cn=Robert Toto,dc=elodig,dc=fr", $entry);

ldap_close($ds);

} else {

echo "Connexion au serveur LDAP impossible";

}

Et voici les messages d'erreur qu'il retourne:

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Protocol error in... (ligne où ldap_bind est appelée)

Warning: ldap_add() [function.ldap-add]: Add: Invalid syntax in... (ligne où ldap_add est appelée)

Je suis sur Linux, Kubuntu 7.10 Gutsy.

J'ai installé les packets suivants: slapd & ldap-utils, changé de mot de passe, fait un test avec un fichier ldif. En ligne de commande, ça marche nickel chrome. Je le lance, j'ajoute, je sélectionne, etc...

J'ai installé phpldapadmin qui me donne une GUI mais il m'est impossible de me connecter au serveur.

Si vous avez une idée...

Merci !

Posté (modifié)

Hello,

dans les commentaires de la doc officielle, on peut lire ça : (30 secondes de recherche).

Note that you have to specify the protocol version prior to making a call to ldap_bind, when the server is expecting LDAP protocol version 3. If you do not, you will receive a warning and fail to bind, such as:

ldap_bind(): Unable to bind to server: Protocol error

In order to avoid this, make this call:

<?php

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

?>

Where $ds is the result returned by ldap_connect(...);

Donc vérifie ton "set_option" qui ne doit pas être appelé quand il faut.

Modifié par Kioob
Posté

oui, en effet, ça vient de cette ligne mais parfois, ça marche, parfois non.

En retirant la condition, en effet, ça marche toujours mais ça m'intrigue quand même que ça ne passe pas tout le temps.

Bon, je vais me contenter de cette situation mais il faudra bien que je trouve un moyen stable et sûr plus tard.

Merci de ton avis en tout cas, si d'autres ont déjà eu ce soucis d'instabilité, je suis curieux d'avoir leur retour :)

Merci !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...