Bonjour à vous,
Tout d'abord je vous remercie pour le temps que vous allez prendre à me lire.
Je ne savais pas trop où poster mon message, désolé si je ne suis pas dans la bonne section.
Voila mon problème en quelques mots.
J'ai développé une petite application en PHP qui tourne très bien. On me demande depuis peu d'y ajouter une authentification via un annuaire LDAP. C'est là que commence le drame.
Pour cela on m'a fournis 3 certificats nommé certificat_ldap_blabla.cer. Les 3 sont de l'extention .cer
Ainsi que l'adresse du serveur ldap://ldap.blabla.com et ldaps://ldap.blabla.com:636.
Mon 1er test a été de tenter une simple connexion anonyme sur le serveur via l'adresse ldap://ldap.blabla.com et une recherche d'information à l'aide du code suivant :
Jusque là tout fonctionne bien.
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
34
35
36
37
38
39
40 <?php $ldaphost = 'ldap://ldap.blabla.com'; $ldapport = 389; $ldapconn = ldap_connect($ldaphost,$ldapport) or die('Impossible de se connecter au serveur LDAP.'); if ($ldapconn) { ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0); $ldapbind = ldap_bind($ldapconn); if ($ldapbind) { echo 'Connexion LDAP réussie...<br/>'; } else { echo 'Connexion LDAP échouée...<br/>'; exit; } } //Test interrogation LDAP $dn='ou=blibli,dc=blabla,dc=com'; $filtre = 'uid=blublu'; $sr = ldap_search ($ldapconn, $dn, $filtre); $info = ldap_get_entries($ldapconn, $sr); for ($i=0; $i<$info["count"]; $i++) { echo 'dn : ' . $info[$i]["dn"] . '<br />'; echo 'cn : ' . $info[$i]["cn"][0] . '<br />'; echo 'sn : ' . $info[$i]["sn"][0] . '<br />'; echo 'mail : ' . $info[$i]["mail"][0] . '<br />'; echo 'uid : ' . $info[$i]["uid"][0] . '<br />'; } ldap_close($ldapconn); ?>
Les problèmes ont commencé quand il a fallut que j'utilise l'adresse ldaps://ldap.blabla.com:636.
En gros, le serveur ldap n'autorise pas la comparaison avec UserPassword lors d'une connexion anonyme. Si je modifie mon script et que j'ajoute ldap_bind($ldapconn,$ldaplog,$ldappass); je me fais insulter. J'imagine que c'est à ce moment qu'entrent en jeu les certificats. Là je suis perdu, je ne vois pas comment les utiliser.
J'ai lu beaucoup d'article en cherchant depuis google mais aucun ne m'aide réellement. Il doit bien y avoir la solution mais les articles me noient plus qu'autre chose.
Je suis sous windows, j'ai installé Xampp, openssl et openldap. Je ne vois pas vraiment à quoi me sert openldap car je ne veux pas créer un annuaire mais en contacter un existant.
Auriez-vous par hasard un conseil ou un lien afin que je puisse apprendre ?
Partager