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 :

Authentification LDAP avec PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club

    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 51
    Points
    51
    Par défaut Authentification LDAP avec PHP
    Bonjour à tous,

    Je suis actuellement en train de developper une classe PHP pour gérer les communications avec un server Active Directory via LDAPS.
    Mon problème se trouve dans ma fonction chargée de vérifier si un user donné peut se logguer.
    tout d'abord le code :
    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
     
    public function login($userDN, $password)
    	{
     
    		if (!is_string($userDN) || $userDN == "")
    			return false;
    		$newConnection = ldap_connect($this->_informations['url'],$this->_informations['port']);
    		ldap_set_option($newConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
    		ldap_set_option($newConnection, LDAP_OPT_REFERRALS, 0);
     
     
    		if (@ldap_bind($newConnection, $userDN,$password) === false)
    		{
    			var_dump(ldap_errno($newConnection));
    			exit;
     
    		}
    		else 
    		{
    			ldap_unbind($newConnection);
    			return true;
    		}
    }
    Cette fonction marche dans sa globalité mais mon problème est le suivant :
    Lorsqu'un utilisateur doit changer son mot de passe soit l'attribut pwdlastset à 0, impossible d'avoir un bind successful. De plus, le code erreur affiché dans le var_dump(ldap_errno()) vaut 49 qui correspond à "mauvais identifiants"... Donc je n'ai trouvé aucun moyen pour demander à l'utilisateur de changer son mot de passe en ayant au préalable vérifié qu'il s'agit bien de lui car on ne peut pas récupérer la value 'unicodepwd', on peut juste la setter et j'ai essayé aussi de setter à la main la value de pwdlastset avec le timestamp AD courant afin de vérifier l'ancien mot de passe avant de lui proposer d'en rentrer un nouveau, mais impossible à setter non plus ...

    Je commence à penser qu'AD et PHP ne sont pas de très grands amis ....

    Pour récapituler, auriez vous une solution pour vérifier le couple login/mot de passe d'un utilisateur AD qui doit changer son mot de passe ?

    Merci d'avance !

  2. #2
    Membre averti Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 384
    Points
    384
    Par défaut
    Bonjour,

    Désolé, je vais répondre un peu à côté mais as-tu regardé du côté de la librairie adLDAP ? Elle est assez complète et permet de travailler avec un ldaps si je ne m'abuse.

    Sinon, bon courage pour ton problème !

Discussions similaires

  1. Configuration LDAP avec php
    Par blackmamba66 dans le forum Langage
    Réponses: 1
    Dernier message: 12/06/2009, 12h31
  2. [LDAP] Authentification LDAP avec Active Directory
    Par sco_didier dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 20/01/2009, 16h36
  3. Réponses: 3
    Dernier message: 14/03/2006, 11h38

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