Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2007, 16h11   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
Par défaut [LDAP] Recherche LDAP/AD en php

Bonjour,
Je souhaite mettre en place un trombinoscope sur mon Intranet (600 personnes);Je ne souhaite pas en trouver un tout fait.
Je viens juste de commencer le projet et je rencontre un problème lorsque je lance une recherche dans mon active Directory.

Le message d'erreur est le suivant : il s'arrête à la ligne "Unable to search LDAP serveur".
J'ai remarqué que si j'enlève le "@" avant ldap_search, il me mets une erreur sur la fonction ldap-search. J'ai soit "Bad search filter, soit Operation error in function search....bref, je tourne en rond.

Ci-joint mon code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
<?php
 
$ldap_server = "ldap://domA.domB.dom";
 
 
// Set the base dn to search the entire directory.
 
$base_dn = "DC=domA, DC=domB, DC=dom";
 
// Show only user persons
$filter = "(&(objectClass=user)(objectCategory=person)
(|(name=$name*)(displayname=$name*)(cn=$name*)))";
 
// Enable to show only users
// $filter = "(&(objectClass=user)(cn=$*))";
 
// Enable to show everything
// $filter = "(cn=*)";
 
// connect to server
 
if (!($connect=@ldap_connect($ldap_server))) {
     die("Could not connect to ldap server");
}
 
// bind to server
 
//if (!($bind=@ldap_bind($connect, $auth_user, $auth_pass))) {
//     die("Unable to bind to server");
//}
 
if (!($bind=@ldap_bind($connect))) {
     die("Unable to bind to server");
}
 
 
// search active directory
 
if (!($search=@ldap_search($connect, $base_dn, $filter))) {
     die("Unable to search ldap server");
}
 
$number_returned = ldap_count_entries($connect,$search);
$info = ldap_get_entries($connect, $search);
 
echo "The number of entries returned is ". $number_returned."<p>";
 
for ($i=0; $i<$info["count"]; $i++) {
   echo "Name is: ". $info[$i]["name"][0]."<br>";
   echo "Display name is: ". $info[$i]["displayname"][0]."<br>";
   echo "Email is: ". $info[$i]["mail"][0]."<br>";
   echo "Telephone number is: ". $info[$i]["telephonenumber"][0]."<p>";
}
?>
Ma question est : est ce mon code qui bug ou y a t'il une modif à faire dans l'AD?

Environnement : Deux domaines (enfant : DomA) et racine (domB) et un exchange 2003. Tout tourne en windows server 2003.
Serveur php : en local sur ma machine, avec WAMP5 (Ps : LDAP est activé dans les extensions php).

Merci pour les réponses que vous pourriez poster.

Ed
Eddu37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 17h33   #2
Membre à l'essai
 
Inscription : juillet 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 38
Points : 24
Points : 24
Est tu sur de ton schema ldap, notamnent du nom de tes filtres ?
J'ai jamais essayé sur un AD, mais j'ai déja eu ce problème sur des requettes ldap.

Essaye de t'y connecter avec un utilitaire comme http://ldapadmin.sourceforge.net/.

Peut être un problème d'accès, sur ton ldap_bind verifie ton login/pass.
FredPont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 09h53   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
Merci pour ta réponse rapide.
En ce qui concerne mon architecture AD, c'est la suivante:
.dom
Domaine racine
Domaine enfant
Site A
OU1
OU2
OU3
Utilisateurs
Site B
OU1
OU2
OU3
Utilisateurs
Site C
etc

En ce qui concerne ldapAdmin, j'essai de me connecter. c'est un peu chaud car apparement il faudrait si'dentifier en utilisant cn=moi, ou=utilisateurs, ou=site A, dc=dom enf, dc=dom rac, dc=dom et mon mot de passe pour le bind???
Et pour le baedn, je dois descendre jusqu'ou dans mon archi AD, je mets juste dom enf.dom rac.dom ou je pars de mon ou utilisateurs pour remonter jusqu'à .dom?

Ensuite tu me parles de mes filtres, je cherche juste le nom de la personne, il doit donc être égale à :
Merci
Ed
Eddu37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 12h39   #4
Membre à l'essai
 
Inscription : juillet 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 38
Points : 24
Points : 24
Citation:
En ce qui concerne ldapAdmin, j'essai de me connecter. c'est un peu chaud car apparement il faudrait si'dentifier en utilisant cn=moi, ou=utilisateurs, ou=site A, dc=dom enf, dc=dom rac, dc=dom et mon mot de passe pour le bind???
Oui c'est ça tu doit utiliser le dn complet de ton administrateur.
Citation:
Et pour le baedn, je dois descendre jusqu'ou dans mon archi AD, je mets juste dom enf.dom rac.dom ou je pars de mon ou utilisateurs pour remonter jusqu'à .dom?
Pour le basedn ça correspond au point le plus "haut" de ta structure ldap
Ex pour un domaine qui s'appel dom.org ton base dn doit être dc=dom,dc=org
(Par contre je ne suis pas certain pour un AD ça fait longtemps que je ne l'ai pas fait)

Pour le filtre ça doit être ça je pense tout dépend du schéma utilisé par un AD.
FredPont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 13h19   #5
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
Ca y est, cela fonctionne.
Il faut impérativement s'authentifier lorsqu'on fait le bind:

L'authentification est la suivante : user@nomdedomaine.net ou dom ou local (en fonction de votre archi).

Merci FredPont pour ce coup de pouce. J'ai également réussi a utiliser ldapadmin hier soir.

A bientot pour d'autres questions.
Eddu37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h42.


 
 
 
 
Partenaires

Hébergement Web