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 20/07/2006, 14h41   #1
Membre confirmé
 
Inscription : janvier 2004
Messages : 537
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 537
Points : 264
Points : 264
Par défaut [LDAP] Problème d'authentification via PHP

Bonjour,

Je souhaite réaliser une interface en PHP qui permet à l'utilisateur de se connecter sur son compte ldap.

J'utilise pour cela le champ userPassword qui est encodé en MD5.
Donc, si on revient à l'interface PHP, lorsque le formulaire est envoyé, je récupère le mot de passe ($mdp_user) et je l'encode avec la fonction md5().

Je recherche alors l'entrée dans le ldap, celle qui correspond à l'utilisateur et au mot de passe au format MD5... mais il n'y a aucune correspondance...

J'ai aussi fait comme ceci :
Code :
$mdp_user = '{MD5}'.base64_encode(pack('H*',md5($mdp_user)));
mais en vain....

Auriez-vous une solution ?

Merci d'avance pour votre aide.
@+
navis84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 15h06   #2
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Le mieux serait de mettre un logiciel (il y en as en freeware) qui serve d'interface avec ton serveur LDAP.
Histoire de voir ce que tu as exactement dans tes champs.
quel est l'utilite du base64_encode et du pack ?
__________________
If it's not broken, don't fix it.
BiliBa Built on top of Zend Framework
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 15h58   #3
Membre confirmé
 
Inscription : janvier 2004
Messages : 537
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 537
Points : 264
Points : 264
Citation:
Envoyé par stunti
quel est l'utilite du base64_encode et du pack ?
Cela permet d'encoder le mot de passe de la même manière qu'il est dans LDAP.
D'ailleurs, j'ai vérifié avec un logiciel et les mots de passe sont les même.

J'en viens donc à la conclusion que la recherche en PHP a un problème. Mais cela ne vient pas de mon filtre car sous le logiciel, la recherche me retourne un enregistrement, et non sous mon application en PHP.

Voici le bout de code concerné :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
                                        $filtre = "(&(uid=".$nom_user.")(userPassword=".$mdp_user."))";
					$restriction = array("uid", "userPassword");
 
					$sr = ldap_search($ds, $rootdn, $filtre, $restriction);
					$tab_result = ldap_get_entries($ds, $sr);
 
					if (ldap_count_entries($ds, $sr) == 1)	
					{
							echo $tab_result[0]["uid"][0];	
					}	
					else
					{
							echo "erreur";
					}
navis84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 17h19   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
L'utilisateur utilisé pour votre connexion LDAP a-t-il bien accès à ce genre d'informations (je fait référence à l'attribut userPassword) ? Etes-vous certain du format (genre espace entre {MD5} et le hash ou autres) ? Avez-vous des messages d'erreurs quelconques ?


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 09h45   #5
Membre confirmé
 
Inscription : janvier 2004
Messages : 537
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 537
Points : 264
Points : 264
Oui, l'utilisateur a bien les droits.

Je viens de résoudre mon problème : le 2e paramètre de la fonction ldap_search() était incorrect. J'avais mis un faux chemin de recherche.

Merci de vos réponses.
navis84 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 11h20.


 
 
 
 
Partenaires

Hébergement Web