|
|
|
|
Php + ldap sur active directory
Dernière réponse le 8 jun 2007 à 15:22:03 neo.t, le 1 sep 2005 à 13:26:55Bonjour,
je suis entrain de créer un Intranet avec une identification de l'utilisateur via l'Active Directory mais j'ai un problème lors de la connection ... si quelqu'un pouvait m'aider ;)
<?php
$server = "localhost";
$rootdn = "cn=Administrateur, o=eabjm, c com";
$rootpw = "passwd";
$ds=ldap_connect($server);
if ($ds) {
$r=ldap_bind($ds,$rootdn,$rootpw);
// données à comparer
$dn="cn=Pillou Jean-Francois, o=eabjm,c=com";
$valeur="MonMot2Passe";
$attribut="password";
// Comparaison
$resultat=ldap_compare($ds, $dn, $attribut, $valeur);
if ($resultat == -1) {
echo "Erreur:".ldap_error($ds);
}elseif ($resultat == TRUE) {
echo "Le mot de passe est correct";
}else{
echo "Le mot de passe est erronné...";
}
ldap_close($ds);
} else {
echo "Connexion au serveur LDAP impossible";
}
?>
et voila le message d'erreur :
Warning: LDAP: Unable to bind to server: Invalid credentials in d:\www\eleves\index.php on line 17
Warning: LDAP: Compare operation could not be completed: No such attribute in d:\www\eleves\index.php on line 23
Erreur:No such attribute
j'ai tourner dans tous les sens le prob je cherche sur internet mais je trouve rien ...
Merci d'avance pour votre aide ;)
Configuration: Windows serveur 2000 Active Directory Serveur Apache
Heuuu... Les lignes correspondent ?
|
Merci ;)
$r=ldap_bind($ds,$rootdn,$rootpw); alors je me dit que j'ai un problème d'identification ... mais je comprend pas pourquoi ... je viens d'essayer de me connecter avec un soft sur l'active directory et ca ne fonctionne pas non plus ... il manque un egal sur la ligne (mais c uniquement sur le forum) : $rootdn = "cn=Administrateur, o=eabjm, c com"; sinon le script je les recuperer ici : http://www.commentcamarche.net/php/phpldap.php3 ;) merci ;) |
Invalid credentials, c'est un probleme de droits d'accès, ca je pense.
|
http://php.morva.net/manual/en/function.ldap-bind.php
|
Re ;)
<?
$ldaprdn = 'ldap'; // user
$ldappass = 'mdp'; // password
// connect to ldap server
$ldapconn = ldap_connect("serveur.eabjm.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
@$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "Connexion LDAP ... OK<br>";
// preparation des données
$dn="cn=test, o=eabjm,c=com";
$valeur="test";
$attribut="password";
// Comparaison du mot de passe à celui dans l'annuaire
$resultat=ldap_compare($ldapconn, $dn, $attribut, $valeur);
if ($resultat == -1) {
echo "Erreur : ".ldap_error($ldapconn);
}else if ($resultat == TRUE){
echo "Le mot de passe est correct";
}else{
echo "Le mot de passe est erronné...";
}
ldap_close($ldapconn);
} else {
echo "Connexion LDAP ... ECHEC";
}
}
?>
L'erreur affichée est la suivante : Warning: LDAP: Compare operation could not be completed: No such attribute in d:\www\eleves\index.php on line 30 La ligne 30 est la suivante : $resultat=ldap_compare($ldapconn, $dn, $attribut, $valeur); Merci d'avance pour l'aide ;) si quelqu'un a une idee n'hesiter pas ;)
|
As-tu regardé ce site :
|
En fait il y a même une release sur ce site ( en anglais ?! ) : http://phpad.sunyday.net
|

