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 :

Connection LDAPS, port 636, changer mot de passe active directory


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Points : 58
    Points
    58
    Par défaut Connection LDAPS, port 636, changer mot de passe active directory
    Bonjour à tous,

    j'essaye de mettre en place une interface web permettant à des internautes de modifier leur mot de passe LDAP.

    Mon serveur LDAP est un serveur Active Directory tournant sur un Windows server 2003 r2
    Mon serveur Web est un apache 2.2.14/PHP 5.3.1 tournant sur un Windows server 2003 r2

    J'ai suivi ce tutoriel:
    http://geekdefrance.fr/2010/08/10/tu...tory-avec-php/

    De mon serveur web, j'arrive à me connecter en SSL sur le port 636 à mon serveur LDAP, via l'application "Ldap Admin Tool 5.6". Il me demande même une confirmation pour le certificat. Donc, selon moi, la connection SSL via certificat fonctionne.

    Mon problème est maintenant au niveau PHP/Apache

    Mon code PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $adConn = ldap_connect("serverName", 636) or die("Echec : la connection AD a echoue!");
    ldap_set_option($adConn, LDAP_OPT_PROTOCOL_VERSION, 3);
    $bind = ldap_bind($adConn, <credential>, <password>);
    ldap_close($adConn);
    Erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldap_bind(): Unable to bind to server: Can't contact LDAP server
    Et je n'ai pas d'erreur si je me connecte au port 389 plutôt qu'au 636.

    J'ai donc créé les dossiers "c:\openldap" et "c:\openldap\sysconf" à la main...
    et j'ai créé le fichier "c:\openldap\sysconf\ldap.conf"

    Avec la ligne
    (bon ok, là on ne tient pas compte du certificat mais il parait que ça fonctionne )
    mais ça ne fonctionne pas...

    Y' a-t-il un moyen de vérifier que le fichier "ldap.conf" est bien pris en compte par PHP (ou Apache ??) ?

    D'avance merci

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par hair_peace Voir le message
    (bon ok, là on ne tient pas compte du certificat mais il parait que ça fonctionne )
    mais ça ne fonctionne pas...
    ça fonctionne pas quand même... Peux tu indiquer le paramètre TLS_CACERT et le chemin du certificat ? voir le commentaire https://bugs.php.net/bug.php?id=18049#1044382147
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Points : 58
    Points
    58
    Par défaut
    Tout d'abord, sorry pour le délai de réponse...

    Merci Thes32 !

    j'ai donc essayé en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TLS_REQCERT never
    TLS_CACERT C:/openldap/sysconf/certs/certnew.cer
    dans C:/openldap/sysconf/ldap.conf

    j'ai aussi essayé en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TLS_REQCERT demand
    TLS_CACERT C:/openldap/sysconf/certs/certnew.cer
    mais rien n'y fait... PHP ne veut pas "binder"

    Y a-t-il un moyen de vérifier que ce certificat est bien pris en compte par PHP ?

    Merci

  4. #4
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    J'ai pris ça sur le manual php de ldap_connect :

    Si vous utilisez OpenLDAP 2.x.x, vous pouvez spécifier une URL au lieu d'un nom d'hôte.Pour utiliser LDAP avec SSL, compilez OpenLDAP 2.x.x avec le support SSL, configurez PHP avec SSL, et utilisez ldaps://hostname/ comme nom d'hôte.
    T'as bien mis ldaps:// avant le nom de ton serveur dans la commande ldap_connect?
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  5. #5
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Points : 58
    Points
    58
    Par défaut
    Merci Marc3001

    Je ne mettais pas le "ldaps://" mais, même avec, cela ne fonctionne pas...
    Je vais quand même le laisser, ça ne mange pas de pain

  6. #6
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Juste pour tester tu peux tester avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TLS_REQCERT never
    TLS_CACERT C:\openldap\sysconf\certs\certnew.cer
    on est bien d'accord que le certificat à placer est bien celui générer par Active Directory.
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  7. #7
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Points : 58
    Points
    58
    Par défaut
    Merci Thes32,

    oui, il s'agit bien du certificat généré par l'Active Directory. Certificat que j'ai copié manuellement dans C:\openldap\sysconf\certs\

    Sinon, j'ai remplacé les '/' par des '\' avec 'TLS_REQCERT never' mais ça ne fonctionne toujours pas...

Discussions similaires

  1. synchronisation mots de passe Active Directory via IIFP sans PCNS
    Par CGR15121 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 20/03/2012, 17h36
  2. Mise à jour du mot de passe Active Directory
    Par katyrd dans le forum Sécurité
    Réponses: 0
    Dernier message: 05/08/2011, 08h35
  3. Réponses: 1
    Dernier message: 19/07/2011, 15h35
  4. Réponses: 4
    Dernier message: 21/04/2010, 10h35
  5. [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, 10h54

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