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 + Active Directory


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Par défaut PHP + Active Directory
    Bonjour à tous,

    je ne débute pas en PHP mais je me heurte à un petit problème. Je souhaiterais créer une application Web en PHP avec authentification à un annuaire Active Directory. Pourriez-vous me donner quelques tuyaux car je ne vois pas trop comment faire... Si vous avez des tutoriaux ou autres à me donner, je suis preneur!

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Par défaut
    je ne suis pas spécialiste AD, bien au contraire (je n'y ai jamais touché), mais ces champs doivent être clairement définis dans l'annuaire...tu dois bien y avoir accès en lecture au moins à cet annuaire,non?

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Par défaut
    Bonjour,
    suite aux réponses d'hier j'ai pu récupérer un script mais je n'arrive pas à le faire fonctionner. Voici ce script:

    <?php
    $ldap_host = "localhost"; /*Adresse du serveur LDAP*/
    $base_dn = "DC=renesas-rdf , DC=local";

    /*TRAITEMENT DES INFORMATIONS DU FORMULAIRES*/
    $user = "cn=".$_POST['user'];
    $password = $_POST['pass'];

    $connect = ldap_connect($ldap_host); /*Connexion au serveur LDAP*/
    ldap_set_option($connect,LDAP_OPT_PROTOCOL_VERSION,3); /*Passage du LDAP en V3 pour travailler avec l'AD*/
    ldap_set_option($connect,LDAP_OPT_REFERRALS,0);
    $read = ldap_search($connect, $base_dn, $user);
    $info = ldap_get_entries($connect,$read);

    $bind = ldap_bind($connect,$info[0]["dn"],$password);
    if ($bind==FALSE) {
    header("location:formulaire.php");
    } elseif ($bind==TRUE) {
    header("location:test.php");
    }
    ldap_close($connect);
    ?>


    Et voici le message d'erreur que j'obtiens dans mon navigateur:
    Warning: ldap_search(): Search: Operations error in d:\program files\easyphp1-8\www\intranet\test\login.php on line 12

    Warning: ldap_get_entries(): supplied argument is not a valid ldap result resource in d:\program files\easyphp1-8\www\intranet\test\login.php on line 13


    UNE IDEE???

    Merci d'avance

  4. #4
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 516
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 516
    Par défaut
    Je m'y connais pas en Ldap mais est ce que les paramètres présent sur cette ligne sont correcte ?
    $connect : c'est le bon paramètre attendu ?
    ldap_search($connect, $base_dn, $user);

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Par défaut
    Oui c'est bien ça qui est indiqué dans le manuel de PHP C'est pour ça que je commence à être un peu perdu!

  6. #6
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 516
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 516
    Par défaut
    Bon ben tu as quelques mois pour trouver car ça pourrais m'intéresser d'ici là
    Regarde en dehors de la doc php parce qu'il arrive qu'ils commetent des erreurs ou que c'est pas à jour.

  7. #7
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Voici la classe dont je me sert pour m'identifier sous AD ainsi que la fonction associée

    Pas de soucis ça fonctionne , par contre il faut faire attention à ton base DN et ton domaine (il faut voir çavec le gars qui gère l'AD) car si ils ne sont pas bons ça ne passera pas !

    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
    /********************
    	  FONCTIONS
    *********************/
    /**
    * Vérifie l'autentification à partir d'un login et d'un mot de passe
    * @param $login Le login à considérer
    * @param $password Le password à considérer
    * @return True si le couple login/pwd est correct, false sinon
    */
    function check_auth($login, $password)
    {
      //Objet permettant d'acceder l'active directory
    // Bon là ya des constantes qui définissent mes params 
      $ldap = new AuthLdap(_BONI_ADSERVER_,_BONI_ADCHAINELDAP_,"ActiveDirectory",_BONI_ADDOMAINE_);
     
      if ( $ldap->connect()) { 
        if ($ldap->checkPass( $login,$password)) {
          if ($ldap->getAttribute($login,'name')=="") {
            $ldap->close(); 
            return false;
          }
          $ldap->close(); 
          return true;
     
        } else {
          $ldap->close(); 
          return false;
        }
      } else
      {
    	echo "Probleme de connexion.<br>";
    	echo "Error code : " . $ldap->ldapErrorCode . "<br>";
    	echo "Error text : " . $ldap->ldapErrorText . "<br>";
    	return false;
      }
    }
    Voilà les constantes utilisées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /** 
     * Utilisé pour l'authentification par l'active directory : Serveur active directory
     */
    define('_BONI_ADSERVER_','bon ben là c'est l'ip hein');
    /** 
     * Utilisé pour l'authentification par l'active directory : Chaine ldap de recherche
     */
    define('_BONI_ADCHAINELDAP_','dc=MABOITE,dc=SA');
    /** 
     * Utilisé pour l'authentification par l'active directory : nom du Domaine
     * (ce qui se rajoute apres le nom d'utilisateur : xxxx at domaine
     */  
    define('_BONI_ADDOMAINE_','maboite.sa');
    Fichiers attachés Fichiers attachés
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  8. #8
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 516
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 516
    Par défaut
    Merci ça me servira.

Discussions similaires

  1. [LDAP] Mots de passe active directory via php
    Par chtijule dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/08/2009, 11h54
  2. PHP et Active Directory
    Par fred61 dans le forum Langage
    Réponses: 2
    Dernier message: 22/07/2009, 15h54
  3. [Active Directory] Création de comptes utilisateurs depuis un script (PHP)
    Par Hervé Saladin dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 24/07/2007, 12h26
  4. comment acceder a une base active directory par php???
    Par vincenttt dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 08/06/2007, 16h31
  5. [LDAP] problème connexion anonyme avec php à Active Directory
    Par anto48_4 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 02/03/2006, 17h50

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