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

Bibliothèques et frameworks PHP Discussion :

[LDAP] Problèmes lors du ldap_bind


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Par défaut [LDAP] Problèmes lors du ldap_bind
    Bonjour,

    Après avoir circuler un peu partout sur le forum et sur notre ami à tous qu'est google, je m'en retourne à vos lumières.
    J'ai installé un serveur LDAP avec OPENLDAP qui semble fonctionner convenablement puisque je réussis à me connecter en anonyme ou avec auth/psw via des interfaces clentes telles que LDAP Browser...

    Cependant, via le php et en utilisant :
    Identification avec LDAP
    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
    <?php
     
    // Eléments d'identification LDAP
    $ldaprdn  = 'cn=xxxxx,dc=yyyy,dc=zzz';     // DN ou RDN LDAP
    $ldappass = 'secret';           // Mot de passe associé
     
    //Connexion au serveur LDAP
    $ldapconn = ldap_connect("localhost")
        or die("Impossible de se connecter au serveur LDAP.");
     
    if ($ldapconn) {
     
        //Connexion au serveur LDAP
        $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
     
        // Identification
        if ($ldapbind) {
            echo "Connexion LDAP réussie";
        } else {
            echo "Connexion LDAP échouée";
        }
     
    }
     
    ?>
    ou
    Connexion anonyme à un serveur LDAP
    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
    <?php
     
    //Connexion anonyme à un serveur LDAP
     
    //Connexion au serveur LDAP
    $ldapconn = ldap_connect("localhost")
        or die("Impossible de se connecter au serveur LDAP.");
     
    if ($ldapconn) {
     
        // identification anonyme
        $ldapbind = ldap_bind($ldapconn);
     
        if ($ldapbind) {
            echo 'Connexion LDAP anonmye réussie';
        } else {
            echo 'Connexion LDAP anonmye échouée';
        }
     
    }
     
    ?>
    J'ai systématiquement une erreur sur la fonction ldab_bind()
    PHP Warning: ldap_bind() [<a href='function.ldap-bind'>function.ldap-bind</a>]: Unable to bind to server: Protocol error

    Sur le serveur LDAP, les indications ne sont pas très claires, mais peu être que pour certains ici elles le seront :
    ber_get_next on fd 888 failed errno=10035 (WSAEWOULDBLOCK)

    ber_get_next on fd 888 failed errno=0 (unknown WSA error)
    connection_read(888): input error=-2 id=4, closing.
    connection_closing: readying conn=4 sd=888 for close
    connection_close: deferring conn=4 sd=888
    connection_resched: attempting closing conn=4 sd=888
    connection_close: conn=4 sd=888


    Ces erreurs ne me parlent pas du tout. Si vous avez des idées/infos ou suggestions, je suis preneur. D'avance merci pour votre aide.

  2. #2
    Membre expérimenté

    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
    Par défaut
    Avez-vous essayer de spécifier la version du protocole (3) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
    à intercaler entre ldap_connect et ldap_bind.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Par défaut
    Oui j'ai testé cela hier soir et ça fonctionne... Merci. Cette version de protocole influe selon la version du LDAP, si je comprends bien ?

    Sinon j'ai d'autres soucis liés aux fonctions ldap_add (par exemple) :

    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
    if ($ds)
    	 {
       // on s'authentifie en tant que super-utilisateur, ici, ldap_admin
        ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);		
        $r=ldap_bind($ds,$rootdn,$rootpw);
     
        if($r){
          	// preparation des données
          	$entry["cn"]="Pillou";
     
          	$entry["sn"]="Jean-Francois";
     
          	$entry["mail"][0]="webmaster@truc.net";
     
          	$entry["mail"][1]="Jeff@truc.net";
     
          	$entry["objectclass"]="person";
     
          	// Ajout des données dans l'annuaire
          	$r=ldap_add($ds, "cn=Jean-Francois Pillou, dc=yyyy,dc=zzz", $entry);
            echo "ldap error : " . ldap_error($ds);
      }
     
    	ldap_close($ds);
    	// Ici les opérations à effectuer
    	echo "<br>Déconnexion...<br>";
     
    	 }
    PhP me retourne l'erreur suivante :
    PHP Warning: ldap_add() [<a href='function.ldap-add'>function.ldap-add</a>]: Add: Naming violation

    Je précise que mon annuaire est vide et que par cette fonctione, je souhaitais commencer à le renseigner... Je trouve les messages d'erreur peu explicites, bien que je débute avec le LDAP.

    D'avance merci pour votre aide.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Par défaut
    Si ça peut aider voici le contenu de mon ldif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dn: dc=yyyy,dc=zzz
    dc: yyyy
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: Sebastien

  5. #5
    Membre expérimenté

    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
    Par défaut
    Citation Envoyé par seblo_scoqi
    Oui j'ai testé cela hier soir et ça fonctionne... Merci. Cette version de protocole influe selon la version du LDAP, si je comprends bien ?
    La version 2 est utilisée par défaut pour la connexion au niveau de l'API alors que le serveur la refuse, lui, par défaut.

    Regardez bien les valeurs de vos attributs et celles qui sont utilisées dans le nom distingué, elles ne correspondent pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          	$entry["cn"]="Pillou";
          	$entry["sn"]="Jean-Francois";
          	$entry["mail"][0]="webmaster@comment camarche.net";
          	$entry["mail"][1]="Jeff@commen tcamarche.net";
          	$entry["objectclass"]="person";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          	$r=ldap_add($ds, "cn=Jean-Francois Pillou, dc=yyyy,dc=zzz", $entry);

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Par défaut
    J'ai donc fait un essai avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
          	$entry["cn"]="Pillou";
     
          	$entry["sn"]="Jean-Francois";
     
          	$entry["mail"][0]="webmaster@comment camarche.net";
     
          	$entry["mail"][1]="Jeff@comment camarche.net";
     
          	$entry["objectclass"]="person";
     
          	// Ajout des données dans l'annuaire
          	$r=ldap_add($ds, "cn=Pillou, dc=sebastien, dc=scoqi", $entry);
    Cette fois l'erreur est différente :
    PHP Warning: ldap_add() [<a href='function.ldap-add'>function.ldap-add</a>]: Add: Object class violation

  7. #7
    Membre expérimenté

    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
    Par défaut
    Citation Envoyé par seblo_scoqi
    PHP Warning: ldap_add(): Add: Object class violation
    olcObjectClasses: ( 2.5.6.6 NAME 'person'
    DESC 'RFC2256: a person'
    SUP top STRUCTURAL
    MUST ( sn $ cn )
    MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )
    Un objet "person" ne possède aucun attribut mail à l'inverse d'un "inetOrgPerson".

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

Discussions similaires

  1. [LDAP] Problème lors d'insertion de valeur vide
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/04/2006, 14h26
  2. Problème lors d'un Update sur une date
    Par Nany dans le forum ASP
    Réponses: 3
    Dernier message: 19/05/2004, 22h37
  3. Problème lors du EXTEND d'un tableau
    Par banana31 dans le forum Oracle
    Réponses: 14
    Dernier message: 10/02/2004, 10h58
  4. Problème lors du chargement
    Par carlito dans le forum Flash
    Réponses: 26
    Dernier message: 06/01/2004, 15h21
  5. Réponses: 2
    Dernier message: 17/08/2003, 20h07

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