IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Problème d'identification LDAP


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Points : 69
    Points
    69
    Par défaut [Sécurité] Problème d'identification LDAP
    Bonjour,
    j'ai un problème assez strange : j'ai fait une page de test en php me permettant de me connecter à un serveur ldap et d'y faire une recherche. Cette page fonctionnant correctement, j'ai voulu la mettre en pratique dans qqch de plus concret.
    J'ai créé une classe connexionLdap qui est sensée ne créer qu'une instance de la connexion (Singleton), mais dans cette classe, il me semble impossible de m'authentifier au serveur.
    Dans ma page de test (elle fonctionne puisque pas d'erreur et m'affiche le résultat d'une recherche) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $conn=ldap_connect($ldapServer);
    // 1ere étape : on teste : le serveur LDAP est-il trouvé ?
    if (!$conn)
     echo "connexion impossible au serveur LDAP";
    $bindServerLDAP=ldap_bind($conn,$dn,$mdp);
    // en cas de succès de la liaison, renvoie Vrai
    if ($bindServerLDAP)
      echo "Le resultat de connexion est ".$bindServerLDAP.") <br />";
    else
      die("Liaison impossible au serveur ldap ...<br />");
    Dans mon objet connexionLdap, j'ai a peu près la même chose :
    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
     
    // Constructeur de la classe connexionLdap : crée l'objet permettant de se connecter à la base LDAP et initialise ses variables aux valeurs par défaut (adresse ip du serveur, port etc ...)
     private function __construct($ldapServer, $ldapServerPort, $mdp, $dn)
     {
      $this->ldapServer = $ldapServer ; // on affecte la variable ldapServer à l'objet connexionLdap.
      $this->ldapServerPort = $ldapServerPort ; // on affecte la variable ldapServerPort à l'objet connexionLdap.
      $this->mdp = $mdp ; // on affecte la variable mdp à l'objet connexionLdap.
      $this->dn = $dn ; // on affecte la variable dn à l'objet connexionLdap.
     
      $this->ldapConnect() ; // on appel la méthode ldapConnect pour établir une connexion à proprement parler.
     }
     
     // Fonction appelée par le constructeur pour créer une connexion.
     private function ldapConnect()
     {
      try {
       $conn=ldap_connect($this->ldapServer) ;
       if (!$conn) {
        throw new Exception('Aucun serveur LDAP n\'était disponible lors de la connexion<br />') ;
       }
       else {
        print ("Liaison au serveur : ". ldap_error($conn)." ");
        $bindServerLDAP=ldap_bind($conn, $this->dn, $this->mdp) ;
        if (!$bindServerLDAP) {
         throw new Exception('L\'authentification au serveur LDAP a échouée<br />') ;
        }
        echo "Connexion au serveur LDAP réussie en tant que ".$this->dn ;
       }
      }
      catch(Exception $e) {
       echo 'Erreur : '.$e -> getMessage() ;
      }
     }
    Le problème est que lorsque je teste ca : j'ai a l'écran
    Liaison au serveur : Success
    Erreur : L'authentification au serveur LDAP a échouée
    Je vous remercie de votre aide

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Ton DN est correct et complet ? Le mot de passe également ? T'es sûr que ta classe implémente un singleton ? Et $conn tu ne devrais pas la garder comme variable privée (ou protected) de classe ?


    Julp.

  3. #3
    Membre habitué Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Points : 192
    Points
    192
    Par défaut
    J'ai exactement le même problème, avec une tentative de liaison que je laisse anonyme... Le ldap_connect() me renvoie bien un ressource link mais le ldap_bind() me signifie un warning comme quoi mon serveur LDAP ne peut pas être contacté...

    J'ai posté un message expliquant de façon plus détaillée ma façon de procéder : http://www.developpez.net/forums/sho...d.php?t=148270

    Comme toi, j'exécute ce type de code dans une fonction membre d'une classe. J'ai donc essayé de sortir le code, mais le problème est le même. Se pourrait-il qu'il s'agisse d'un pb de configuration d'Apache ?
    Ingénieur Génie Logiciel et Systèmes d'Information
    Management des Nouvelles Technologies

    Ecole Supérieure d'Ingénieurs de Luminy (ESIL), Marseille

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Points : 69
    Points
    69
    Par défaut
    J'ai trouvé la réponse au problème : il faut spécifier qu'on utilise la version 3 juste après la cnx, sinon il ne bind pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldap_set_option($this->conn, LDAP_OPT_PROTOCOL_VERSION, 3) ;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème identification LDAP PDC avec SMB
    Par moradinddn dans le forum Administration système
    Réponses: 0
    Dernier message: 10/12/2013, 10h05
  2. problème d'identification LDAP avec OpenLDAP
    Par doczorg dans le forum Websphere
    Réponses: 6
    Dernier message: 06/11/2007, 15h42
  3. Problème d'identification
    Par gerrard dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 28/12/2005, 11h33
  4. Réponses: 2
    Dernier message: 22/12/2005, 21h23
  5. [Sécurité] Probléme menu !!
    Par Shandler dans le forum Langage
    Réponses: 17
    Dernier message: 12/12/2005, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo