Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 07/03/2006, 10h55   #1
Futur Membre du Club
 
Inscription : février 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 53
Points : 15
Points : 15
Par défaut [Sécurité] probleme intranet php ldap

Bonjour a tous,

Je suis en trin de développer une application intranet php ldap avec comme annuaire active directory. Mais j'ai un problème au niveau de ma fonction qui retourne tous mes utilisateurs.

Voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
// Eléments d'identification LDAP
$ldaprdn  = 'Administrateur';    //nom d'administrateur du domaine 
$ldappass = '';           //mot de passe
 
//Connexion au serveur LDAP
$ldapconn = ldap_connect("chs-stalban.fr")    or die("Impossible de se connecter au serveur LDAP.");
if ($ldapconn) 
{    
//Connexion au serveur LDAP
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);   
 
 if ($ldapbind) {        
 echo "Connexion LDAP réussie";    
	ldap_search($ldapconn, "dc=chs-stalban,dc=FR","objectclass=person");
 } else {
 echo "Connexion LDAP échouée";    
 }        
 }
Erreur retourné:

Warning: ldap_search(): Search: Operations error in c:\php\index.php on line 15 // c'est à dire a la ligne du ldap_search(...)


merci de vos suggestions
anto48_4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 11h33   #2
Membre éclairé
 
Avatar de hisy
 
Inscription : novembre 2004
Messages : 373
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 373
Points : 300
Points : 300
Il semble que tu ne mettes pas de restriction ...

Code :
1
2
3
 
$restriction = array('uid', 'sn', 'givenName');
		$ldap_query =ldap_search($ldapconn, "dc=chs-stalban,dc=FR","objectclass=person", $restriction);
Essai d'en mettre une ... il y a peut etre des brides sur ton serveur LDAP qui t'empechent de faire des requetes si vastes ...
__________________
Take it HiSy
hisy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 11h47   #3
Futur Membre du Club
 
Inscription : février 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 53
Points : 15
Points : 15
je suis qu'un novice en php

Non, je n'est pas mis de restriction dans mon code.

A quoi correspond chaque paramètre de la variable restriction pour savoir quoi y mettre pour pouvoir tester ceci?

merci de ta reponse[/code]
anto48_4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 11h47   #4
Futur Membre du Club
 
Inscription : février 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 53
Points : 15
Points : 15
je suis qu'un novice en php

Non, je n'est pas mis de restriction dans mon code.

A quoi correspond chaque paramètre de la variable restriction pour savoir quoi y mettre pour pouvoir tester ceci?

merci de ta reponse
anto48_4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 12h16   #5
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
salut

ldap_search retourne un identifiant de résultat, ou bien FALSE en cas d'erreur.

voici un exemple d'un code que j'exploite en développement, et qui fonctionne :
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
 
public function authentifie($user='',$pass='') {
 
   if(empty($pass)) throw new Exception("Mot de passe obligatoire");
   $user="cn=".$user;
   $nom='';
   $domaine="ou=info,ou=md1,o=orga";
 
   // connexion
   $ds=ldap_connect("xx.xx.xx.xx:389");
   if(!$ds) throw new Exception ("Connexion LDAP impossible");
 
   // setting
   $vs = ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION, 3);
   if(!$vs) throw new Exception ("Impossible de modifier la version de protocole du serveur LDAP");
 
   $vs = ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
   if(!$vs) throw new Exception ("Impossible de modifier la version referrals du serveur LDAP");
 
   // recherche
   $read=ldap_search($ds,$domaine,$user);
   if(!$read) throw new Exception("recherche impossible");
 
   // recuperation des donnees
   $info=ldap_get_entries($ds,$read);
   $dn=$info[0]['dn'];
   if(empty($dn)) throw new Exception("Utilisateur non trouvé");
   $rep=$info[0]['fullname'];
   $nom=$rep[0]; 
   $cn=ldap_bind($ds,$dn,$pass);
   if(!$cn) throw new Exception ("Mot de passe invalide");
 
   // fermeture
   if(! ldap_close($ds)) throw new Exception ("Echec de fermeture connexion LDAP");
   return $nom;
 
}
bon, au départ, il s'agit d'une classe que je viens de modifier pour l'exemple...
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 11h33   #6
Futur Membre du Club
 
Inscription : février 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 53
Points : 15
Points : 15
J'ai modifié ton code pour mon application ska_root mais j'ai un probléme doffet pour ces 2 lignes :

$dn=$info[0]['dn'];
$nom=$rep[0];

message erreur:

Notice: Undefined offset: 0
anto48_4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 13h28   #7
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
fais un print_r de $info STP...
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 14h08   #8
Futur Membre du Club
 
Inscription : février 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 53
Points : 15
Points : 15
J'ai fait un print_r($info);

et sa me donne sa :
Array ( [count] => 0 )

Celà veut-il dire qu'il ne trouve personne?
Si oui comment celà se fait-il vu que j'ai des utilisateurs dans mon active directory

Cordialement
anto48_4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 18h22   #9
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
je pense qu'il faut que tu vérifies ta chaine de connexion correspondant au DIT de active directory (Directory Information Tree), en l'occurence ce qui est contenu dans la variable $domaine dans ce code.
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 09h29   #10
Futur Membre du Club
 
Inscription : février 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 53
Points : 15
Points : 15
Mon nom de domaine est bon vu que lorsque je modifie objectclass=person en ObjectClass=*, ce dernier me retourne des resultats mais ce n'est pas que des utilisateurs.
anto48_4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h24.


 
 
 
 
Partenaires

Hébergement Web