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 :

PHP/LDAP- bind credential error [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut PHP/LDAP- bind credential error
    bonjour,

    j'ai éditer le code suivant en compilant plusieurs exemples interressant.
    J'utilise EasyPHP et les modules LDAP/mSring/Mysqli...
    Lors de la connexion avec un identifiant et un mot de passe sur un LDAP active directory 2003 server, celui ci fonctionne... puis ne fonctionne plus en réessayant.

    J'appelle la fonction ci-dessous via un formulaire disposé sur un DIV, le même resultat disposé normalement. la réponse d'erreur récurente c'est : cant bind to server : crédential error. j'ai lu kek part qu'il sagit d'une réponse du serveur qui ne reconnait pas l'identifiant et le mot de passe....qui a pourtant marché quelques secondes plus tôt. un pro peu t'il m'aiguillé la dessus ?


    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php /* Date de création: 05/06/2012 */ ?>
    <html>
    <body>
    <?php
    $login = htmlentities($_POST["login"]); //Récupération de la variable login
    $pass = htmlentities($_POST["pass"]); //Récupération de la variable pass
    $dom =  htmlentities($_POST["domaine"]); //Récupération du choix du domaine de connexion
    $ldap_port = 389;
    $ip = "0.0.0.0";	
     
    switch ($dom) {		 /* SELECTION DE L'IP et ajout du domaine au login EN FONCTION DU DOMAINE DE CONNECTION */
    	case "adm.loc" : $ip ="192.x.x.x"; break;
    	case "ped.loc" : $ip ="192.x.x.y"; break;
    	default: $ip ="192.x.x.y";
    	}
    echo "DEBUG = ip server ".$dom.": ".$ip."<BR>";
     
    $ds = ldap_connect("$ip",$ldap_port);  // On initialise la connexion au domaine (doit être un serveur LDAP valide !)
     
    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); //Option à ajoutée si vous utiliser Windows server2k3
    ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); //Option à ajoutée si vous utilisez Windows server2k3	
     
    $r = ldap_bind($ds,"$login","$pass") or die("Connexion impossible"); // connexion avec user et password
    //$r = ldap_bind($ds) or die("Connexion impossible"); // connexion anonyme read only
    echo "Le résultat de connexion est  $ds ";
    if ($r == true) { 
    echo "Reussite"; 
     $filter="(|(sn=$login*)(cn=$login*))";
     
     switch ($dom) 
     	{		 /* FAIRE LA RECHERCHE SUR LA BONNE RACINE EN FONCTION DU DOMAINE DE CONNECTION */
    	case "adm.loc" : $sr=ldap_search($ds, "dc=adm,dc=loc", $filter); break;
    	case "ped.loc" : $sr=ldap_search($ds, "dc=ped,dc=loc", $filter); break;
    	default: case "ped.loc" : $sr=ldap_search($ds, "dc=ped,dc=loc", $filter);
    	}
     echo $filter ;
     echo $sr;
     
     if (! $sr==false ) 
     	{
        $info = ldap_get_entries($ds, $sr);
    	echo 'Données pour ' . $info["count"] . ' entrées<BR>'; // Retourne le nombre d entrées, ici une seule grace au login unique
    	echo 'DN : ' . $info[0]["dn"] . '<BR>'; // Retourne le DN de l utilisateur
    	echo 'CN : ' .$info[0]["cn"][0]. '<BR>'; // Retourne le CN de l utilisateur
    	echo 'Samaccountname : '.$info[0]["samaccountname"][0].'<BR>';
    	echo 'displayname : '.$info[0]["displayname"][0].'<BR>';;
    	echo 'Userprincipalname : '.$info[0]["userprincipalname"][0].'<BR>';
    	echo 'givenname : '.$info[0]["givenname"][0].'<BR>'; 
    	} 													
     ldap_unbind($ds) or die("Erreur lors de la deconnexion au serveur : $dom");;
     //ldap_close($ds); 
     
    }else { echo "Echec <br>"; } // On affiche le résultat de la connexion LDAP
    ?>
    </body>
    </html>

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    ya des choses qui sont extraordinaire dans le script:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ip = "0.0.0.0";
    switch ($dom) {	
    	default: $ip ="192.x.x.y";
    }
    on est pas tout à fait sur d'avoir une chaine:
    "$ip"
    si jamais on a écrit du code pour contenir l'erreur gracieusement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     or die("Connexion impossible");
    comme ici ( ça je ne l'avais jamais vu, ça mérite une nomination )
    et pour ton problème, je sais pas.. affiche tes user/pass sur on formulaire pour verifier qu'il récupère ce qu'il faut...
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut
    Ouii j'ai 3 jours d'ancienneté en php.... en effet y a des erreurs, mais c'est pour ca que je viens ici .. pour trouver des gens avec un peut plus d’expérience que moi, pas pour frimer comme tu as l'air de l'imaginer.

    Essais d'être un peut moins vexant stp...et plus pédagogue merci.. par ce que les remarques faites, je ne suis pas en mesure de les corrigés...pas assez de bouteille pour traduire l’ironie du message.

    je fais deja l'affichage des variable, et les resultats des choix en fonction de celle-ci.. aucun problème de ce côté là...

    mon problème le plus gênant, c'est que ca fonctionne en un temps X, puis ca ne passe plus en Y.. bref c'est pas du tout un fonctionnement sûr a 100%. je passe au PHP 5.4 pour voir, des fois que ça ne viendrais pas de moi.

  4. #4
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut RESOLUT.
    C'est simplement la syntaxe de l'arborescence OU=....dc=.... qui n'était pas assez proche de la racine du domaine... apparemment, les OU "users" ne sont pas accessible directement comme ca. De toute façon la recherche est récursive par defaut.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/06/2011, 08h28
  2. Réponses: 3
    Dernier message: 17/01/2011, 15h18
  3. ldap bind modules php
    Par fourchette dans le forum Apache
    Réponses: 7
    Dernier message: 06/03/2009, 13h11
  4. [Sécurité] php + ldap
    Par XtofRoland dans le forum Langage
    Réponses: 2
    Dernier message: 23/01/2006, 12h41
  5. [Sécurité] PHP LDAP
    Par ripou dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2005, 18h00

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