PHP & l'active directory

Mammouth du PHP | 737 Messages

29 mars 2010, 11:00

Bonjour,

Vous savez quoi..? RAS'L'CUL !!!!!!!!!!!!

C'est pas très constructif mais ça fait du bien :)

Le pompon : J'arrive pas à télécharger le dernier script proposé par Yosh.

Bref, reprenons si vous le voulez bien et si vous avez du temps of course.

Je suis en local sur un wamp5.

J'ai repris un script simple que voilà :
<?php 

// Eléments d'authentification LDAP
$ldaprdn  = 'un compte ldap';     // DN ou RDN LDAP
$ldappass = 'son mot de passe';  // Mot de passe associé

// Connexion au serveur LDAP
$ldapconn = ldap_connect("serveur.maboite.com")
    or die("Impossible de se connecter au serveur LDAP.");

if ($ldapconn) {

    // Connexion au serveur LDAP
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // Vérification de l'authentification
    if ($ldapbind) {
        echo "Connexion LDAP réussie...";
    } else {
        echo "Connexion LDAP échouée...";
    }

}

?> 
Le compte utilisé se trouve dans un dossier "Compte systèmes" (de type utilisateur) et j'ai un autre dossier qui reprend un peu les mêmes infos mais dont le type est Groupe de sécurité global.

J'ai les infos DNS, l'ip de la machine, le serveur de l'appli...What else ?

Mega
;)
Dyslexics are teople poo

Mammouth du PHP | 568 Messages

29 mars 2010, 11:02

Et ton script de test, il fonctionne tel quel??

ViPHP
ViPHP | 5462 Messages

29 mars 2010, 11:05

t'es sur que ton serveur est du type "serveur.maboite.com" ?

Mammouth du PHP | 737 Messages

30 mars 2010, 10:23

Bonjour et merci de votre patience.

J'exécute en local sur un wamp5 le script de mon dernier post.

Ca mouline et au final ça me renvoie cette erreur :

Code : Tout sélectionner

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\wamp\www\hron\ldap.php on line 15 Connexion LDAP échouée...
Un pote m'a dit d'utiliser le nom DNS plutôt que l'IP, peu importe, ça ne fonctionne pas plus.

J'ai réussi à arracher quelques infos :

Code : Tout sélectionner

Utilisateurs et ordinateurs Active Directory (hubert.hron.maboite.com) + Requêtes sauvegardées - hron.maboite.com + Compte Admin + Compte systèmes (les infos qui m'intéressent sont ici avec les type user) ...
J'ai changé dans mon script serveur.maboite.com par hubert.hron.maboite.com, en vain...Ca vous parle ?

Cordialement,

Mega
;)
Dyslexics are teople poo

ViPHP
ViPHP | 5462 Messages

30 mars 2010, 10:24

je te le redis encore t'es sur que ton serveur est actif sur .maboite.com ? c'est rare que les AD soit sur le DMZ...

Mammouth du PHP | 737 Messages

30 mars 2010, 11:28

Si je travaillais chez free l'adresse serait de ce type : hubert.hron.free.fr.

Une idée ? C'est quoi l'histoire des cn= et ou= ..?
Dyslexics are teople poo

ViPHP
ViPHP | 5462 Messages

30 mars 2010, 11:33

Si je travaillais chez free l'adresse serait de ce type : hubert.hron.free.fr.
non

Suplolo33
Invité n'ayant pas de compte PHPfrance

02 avr. 2010, 18:06

Bonjour,

étant donné que le "ldap_connect" fonctionne, y a pas de problème côté définition du serveur. Laisse celui d'origine : "serveur.maboite.com".
Je pense que c'est surtout dans la définition du compte de connexion où y a un problème.

Dans :

$ldaprdn ="cn=user1,OU=Comptes consolidés,dc=maboite,dc=fr";//j'ai essayé de rajouter dc=clients (sans succès)
où est le domaine? C'est un AD et donc, il faut un compte de domaine.

J'ai lu plus loin :

Utilisateurs et ordinateurs Active Directory (hubert.hron.maboite.com)
+ Requêtes sauvegardées
- hron.maboite.com
+ Compte Admin
+ Compte systèmes (les infos qui m'intéressent sont ici avec les type user)

ton domaine serait pas "hron" par hasard
ce qui donnerait :
$ldaprdn ="cn=user1,OU=Comptes consolidés,dc=hron,dc=maboite,dc=fr";

Si le domaine n'est pas "hron", essaie avec le bon nom du domaine parce que c'est sûr qu'il faut qu'il soit renseigner.

Salut mon super Dino ^^

Bon je suis reparti de ce script qui me semble simple et fonctionnel.

Voici les infos en ma possession et comment j'ai attribué mes valeurs :

Serveur LDAP ----------------------------
DNS : laliasdns.clients.maboite.fr
SON IP : XX.XXX.XXX.XX
--------------------------------------------

Sur ce serveur LDAP --------------------
Les comptes se trouvent dans : Comptes consolidés
Ci-contre un user : user1
Son mot de passe : !Le_user1


Voici comment j'ai rempli le script :
$ldaprdn ="cn=user1,OU=Comptes consolidés,dc=maboite,dc=fr";//j'ai essayé de rajouter dc=clients (sans succès) 
$ldappass = "!Le_user1";    
      
$ldapconn = ldap_connect("ldap://XX.XXX.XXX.XX") or die("Could not connect to LDAP server.");//j'ai essayé l'IP ou la version DNS (idem rien)
       
if ($ldapconn) {
       
        $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
       
        if ($ldapbind) {
                        echo "LDAP bind successful...";
        } else {
                        echo "LDAP bind failed...";
        }      
}
En local, j'obtiens :
Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\wamp\www\ldap2010\index.php on line 22
LDAP bind failed...
Ca correspond à la ligne : $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

J'ai également l'alias du serveur de l'appli et son appli.

Comme tu peux voir, c'est la misère. Ca mouline un poil plus mais rien. Je continue mes recherches...

Mega
;)

ViPHP
ViPHP | 5462 Messages

02 avr. 2010, 18:42

je te le redis encore t'es sur que ton serveur est actif sur .maboite.com ? c'est rare que les AD soit sur le DMZ...

Mammouth du PHP | 737 Messages

06 avr. 2010, 10:14

Bonjour,
je te le redis encore t'es sur que ton serveur est actif sur .maboite.com ? c'est rare que les AD soit sur le DMZ...
Non l'AD n'est pas sur la DMZ.


Sur le serveur de destination finale j'ai :

Code : Tout sélectionner

Fatal error: Call to undefined function ldap_connect() in /appli/www/is/ldap/index.php on line 12
Ca veut bien dire qu'il faut décommenter la ligne de l'extention ldap dans le .ini ?

Mega
;)
Dyslexics are teople poo

ViPHP
ViPHP | 5462 Messages

06 avr. 2010, 10:17

non ca veux dire que l'adresse n'est pas bonne, t'es sous windows ? en reseau entreprise ? t'as un outlook de configurer ?

jagogordonne
Invité n'ayant pas de compte PHPfrance

06 avr. 2010, 14:00

Salut,
Si tu utilises ldap avec un certificat tu utilise LDAPS et donc ton url c'est ldaps://xxx.xxx.xxx.xxx et non ldap://xxx.xxx.xxx.xxx.

Mammouth du PHP | 737 Messages

07 avr. 2010, 10:43

Bonjour et merci de vous soucier de moi,
Salut,
Si tu utilises ldap avec un certificat tu utilise LDAPS et donc ton url c'est ldaps://xxx.xxx.xxx.xxx et non ldap://xxx.xxx.xxx.xxx.
J'en prends note ;)

Afin de profiter des fonctions ldap de php j'aurai besoin de connaitre l'extension équivalente de php_ldap.dll pour pouvoir exécuter ces fonctions sur un serveur freebsd. Il n'y a pas besoin d'installer openldap rassurez-moi 8-|
Je te confirme stealth35 que l'AD n'est pas sur la DMZ. Je suis grosso modo dans un sous-domaine d'une LAN...

Mega
;)
Dyslexics are teople poo

ViPHP
ViPHP | 5462 Messages

07 avr. 2010, 10:47

mais est ce que ton serveur a acces a l'AD ? de ton poste tu peu y allé (avec un explorer, moi j'ai un plugin ecplise apache directory) ?

Mammouth du PHP | 737 Messages

07 avr. 2010, 11:11

Re,

Je ne suis pas admin des machines et d'ailleurs tant mieux car mes compétences réseau sont vraiment trop pauvres ^^

Le flux est ouvert, c'est une certitude.

Le nouveau problème :
J'exécute depuis un serveur freebsd (F) les scripts ldap pour me connecter au serveur ldap (L) mais comme c'est pas du windows j'ai pas d'extensions .dll et ne peux pas profiter des fonctions ldap de php. Sous windows on décommente le php.ini, on redémarre et ça roule mais là #-o
Je pense après que j'arriverai à me connecter facilement au ldap pour rebondir sur le serveur d'appli A.

Le cheminement c'est :

F -> L <-> A

Merci à toi.

Mega
;)
Dyslexics are teople poo