Utiliser l'active directory avec php

Fermé
Eiji Messages postés 261 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 18 mars 2009 - 26 mai 2004 à 12:41
Eiji Messages postés 261 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 18 mars 2009 - 27 mai 2004 à 15:26
Bonjour,
je souhaiterais savoir s'il est possible d'utiliser les utilisateurs situés dans l'active directory de Windows 2000 Server afin de sécurisé un intranet en php.
Pour éviter d'avoir plusieurs mot de passe et nom d'utilisateur pour une même personne, je souhaiterai pouvoir interroger l'active directory par le biais de fonctions php.
Est ce possible ? Et si oui, comment ?

Merci d'avance.

Eiji.
A voir également:

8 réponses

Salut,

La récupération d'infos LDAP sous win2000 server c'est un jeu d'enfant. Il suffit de connaitre quel champ tu veux récupérer de ton annuaire LDAP. Je m'explique: un annuaire LDAP est un arbre de données utilisateurs. tu peux récupérer les valeurs des feuilles pour une branche donnée ou pour tout l'arbre. Les valeurs de chaque feuille sont stockées dans des champs aux nom biens precis. Ces noms sont différents d'un annuaire LDAP a un autre: par exmple pour recuperer le login d'un utilisateur sur l'active directory tu dois recuperer le champ 'sAMAccountName' alors que sur iPlanet c'est le champ 'uid' que tu vas recuperer.

Les branches des arbres sont recuperees grace à des valeur du type "o=dc, o=domaineTruc, sn=*"
C'est des chaines assez barbares et qui different suivant les annuaires LDAP.

Tout ca semble assez complexe. En fait il faut que tu saches quel champ tu veux recuperer de l'annuaire (mail, login , nom complet par exemple), ensuite exporter des données pour connaitre le nom interne des champs à interroger et enfin ecrire ton fichier php.

Sous windows 2000 server il existe un executable qui s'appelle 'ldifde.exe'. il permet d'exporter des données d'un annuaire LDAP au format .ldif (qui est un fichier texte en fait). Il existe aussi un 'csvde.exe' qui fait la meme chose mais en .csv
Cet utilitaire permet de recupere n'importe quelle donnée d'un annuaire LDAP et ca permet ainsi, en recuperant qu'une partie des données, de connaitre comment AD nomme ses champs.

Un exemple devrait dissiper le flou:
en tapant:
'ldifde -v -r "(ObjectClass=User)" -s <serveurLDAP> -f sortie.ldif -l "sAMAccountName, displayName, UserPrincipalName" -b <user_avec_acces> <domain> <mot_de_passe>'
l'utilisateur <user_avec_acces> va se connecter au <serveurLDAP> (a remarquer qu'il s'agit de AD ou d'un autre) et récupérer tous les objets qui sont définis comme utilisateurs (d'ou le OBjectClass=User) et récupérer leur login, leur mail et leur nom complet et stocker le resultat dans le fichier sortie.ldif qui est un fichier texte.
Chaque entree dans le fichier commence par 'dn: CN=..., CN=..., DC=... etc...' c'est cette ligne (sans le dn=) qui definit la branche et la feuille de votre arbre. Les DC correspondent au domaine et les CN aux feuilles.

Si vous voulez recuperer tous les champs de chaque utilisateurs alors supprimer le ' -l "<blabla>" ' ety allez voir dans le fichier de sortie. Grace à ca vous saurez quelle chaine de caracteres il faut mettre dans le ldap_search.

J'imagine que tout ce que j'ai ecris n'est pa forcement clair avec si vous avez des questions n'hesitez pas!!

Bon courage!!
8
Utilisateur anonyme
26 mai 2004 à 14:02
Salut,
j'avais fait une recherche rapide la dessus, et il ressortait que l'AD n'est en fait qu'un annuaire LDAP.
Tu peux donc essayer d'attaquer ton AD avec les fonctions ldap de php.
Va voir la : http://fr2.php.net/manual/fr/ref.ldap.php

Fat_Cartman,
Parce que je le vaux bien...
1
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
26 mai 2004 à 16:48
Tu peux jeter un oeil ici aussi, ça pourra peut-être t'aider :
http://www.nexen.net/docs/php/annotee/ref.ldap.php?lien=ldap

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
1
Eiji Messages postés 261 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 18 mars 2009 28
26 mai 2004 à 14:55
Merci pour le lien, mais j'avoue que je suis un peu perdu.
Je vais essayé de m'y mettre plus attentivement.

Eiji.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Eiji Messages postés 261 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 18 mars 2009 28
26 mai 2004 à 16:30
Au secours !
ça parait vraiment complexe. Apparemment, on peut effectivement interroger l'active directory via LDAP.
Mais, je ne vois pas du tout comment faire.
Je connais pas du tout LDAP ni comment l'utiliser.
Quelqu'un pourrais t'il m'indiquer un lien sur un cour bien fait ou me donner un exemple pour me faire avancer ?
Merci,
Eiji.
0
Utilisateur anonyme
26 mai 2004 à 16:42
Moi non plus je connais pas de trop. Mais en ce qui concerne l'utilisation des fonctions, consulte www.php.net, il y a souvent des exemples.

Fat_Cartman,
Parce que je le vaux bien...
0
Eiji Messages postés 261 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 18 mars 2009 28
27 mai 2004 à 13:33
Bonjour,
merci pour toutes ces infos, je me penche dessus et je donne des nouvelles dès que je suis bloqué.


Eiji.
0
Eiji Messages postés 261 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 18 mars 2009 28
27 mai 2004 à 15:26
Merci YouYou pour les infos sur ldifde.exe
Cet utilitaire m'a permis de résoudre tous mes problèmes d'un seul coup.
En fait, le problème se situait dans la bonne syntaxe à utiliser.
Eiji.
0