Bonjour...
Je fais entrer au client des données que je vais vérifier sur un ldap pour voir s'il en est membre...
Tout va bien... jusqu'à ce que l'on arrive au mot de passe, évidemment codé !
J'ai cru comprendre que je devais récupérer le mdp entré par le user, le coder moi même avec la fonction crypt, et comparer avec le champ crypté du ldap : userPassword... Oui mais voilà ! J'ai cru comprendre que mon champ LDAP est crypté en {SSHA} ou bien {SSH} (c'est selon)...
Comment je fais moi ? Vu plein de fois ce genre de questions en googleisant, mais jamais lu une réponse satisfaisante...
Au fait, ma fonction :
Bien sûr $inputid et $inputpass sont les variables entrées dans le form par user... Bien sûr aussi, je mets des identifiants de connexion fantaisie...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <php> function tape_dans_ldap($inputuid,$inputpass){ $ldap='toto'; $ds=ldap_connect($ldap)or die("Connexion au ldap impossible. Veuillez ré-essayer ultérieurement."); $dn="ou=toto"; //requête ldap if($ds){ $cryptpass=crypt($inputpass); $filtre="(uid=$inputuid*)"; $recup=array($dn,"uid","userPassword"); $search=ldap_search($ds,$dn,$filtre,$recup); $info=ldap_get_entries($ds,$search); if ($info["count"]!=0){ for ($i=0; $i<$info["count"]; $i++){ $pass=$info[$i]["userPassword"]; if ($cryptpass==$pass){ echo 'Mot de passe correct !'; } else{ echo'Mot de passe incorrect !'; } } } else{ echo 'Cet identifiant ne figure pas dans le ldap.'; } } } </php>
Partager