begin process at 2012 02 05 01:45:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > CONNEXION LDAP AVEC LOGIN MOT DE PASSE EN PHP

CONNEXION LDAP AVEC LOGIN MOT DE PASSE EN PHP


 Information sur la source

Note :
6,33 / 10 - par 3 personnes
6,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Classé sous :login, connexion, ldap, active, directory Niveau :Débutant Date de création :04/08/2005 Date de mise à jour :04/08/2005 21:05:14 Vu :34 462

Auteur : Dyr3e

Ecrire un message privé
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

ce code permet de verifier l'identité d'une personne se connectant a un annuaire LDAP ( dans mon cas Active directory ) la connexion se fait en anonymous et il est necessaire de creer une page a part avec un formulaire qui pointera sur cette page. en cas de succès d'identification, l'utilisateur est redirigé sur une page, sinon il revient sur la page de Login / mot de passe.

Source

  • <?php
  • // informations de connexions
  • $ldap_host = "localhost"; //inserer ici l'addresse du serveur LDAP
  • $base_dn = "DC=GUESSANT,DC=ORG";
  • $user = "cn=".$_POST['user']; // on traite les information recoltées
  • $password = $_POST['pass'];
  • $admin="admin"; // indiquez ici le groupe auquels appartient les admin et les membres. dans mon exemple, j'ai un o=admin et un o=membres.
  • $membres="membres";
  • $connect = ldap_connect($ldap_host) // connexion en anonymous
  • or exit(">>Connexion au serveur LDAP echoué<<");
  • ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); // on passe le LDAP en version 3, necessaire pour travailler avec le AD
  • ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
  • $read = ldap_search($connect,$base_dn, $user)
  • or exit(">>erreur lors de la recherche<<");
  • $info = ldap_get_entries($connect, $read);
  • if ( preg_match("!".$admin."!",$info[0]["dn"] ) ) // si le user trouvé est admin :
  • {
  • $bind = ldap_bind($connect,$info[0]["dn"],$password);
  • if ( $bind == FALSE ) // si le BIND est FALSE, le mot de passe est erronée
  • // echo( " il est admin mais faux mdp");
  • header("location: auth_ldap.php?result='0'");
  • elseif ( $bind == TRUE ) // on peut ajouter d'autre traitement si l'identification est ok ( ex : $_SESSION['user'] = ... )
  • {
  • header("location: index.php");
  • }
  • }
  • elseif ( preg_match("!".$membres."!",$info[0]["dn"]) ) // si le user trouvé est membres :
  • {
  • $bind = ldap_bind($connect,$info[0]["dn"],$password);
  • if ( $bind == FALSE ) // si le BIND est FALSE, le mot de passe est erronée
  • // echo( " il est membre mais faux mdp");
  • header("location: auth_ldap.php?result='0'");
  • elseif ( $bind == TRUE ) // on peut ajouter d'autre traitement si l'identification est ok ( ex : $_SESSION['user'] = ... )
  • {
  • header("location: index.php");
  • }
  • }
  • else // le user n'a pas pu être trouvé
  • {
  • // echo "nom de user invalide";
  • header("location: auth_ldap.php?result='1'");
  • }
  • ldap_close($connect);
  • ?>
<?php
// informations de connexions

$ldap_host = "localhost";  //inserer ici l'addresse du serveur LDAP
$base_dn = "DC=GUESSANT,DC=ORG";

$user = "cn=".$_POST['user'];  //  on traite les information recoltées 
$password = $_POST['pass']; 

$admin="admin";  // indiquez ici le groupe auquels appartient les admin et les membres. dans mon exemple, j'ai un o=admin et un o=membres.
$membres="membres";

$connect = ldap_connect($ldap_host)  // connexion en anonymous
    or exit(">>Connexion au serveur LDAP echoué<<");
		 
		 
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);  // on passe le LDAP en version 3, necessaire pour travailler avec le AD
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);

	 
$read = ldap_search($connect,$base_dn, $user)
     or exit(">>erreur lors de la recherche<<");
$info = ldap_get_entries($connect, $read);

if ( preg_match("!".$admin."!",$info[0]["dn"] ) ) // si le user trouvé est admin :
	{
	$bind = ldap_bind($connect,$info[0]["dn"],$password);
	if ( $bind == FALSE )	// si le BIND est FALSE, le mot de passe est erronée
		// echo( " il est admin mais faux mdp");
		header("location: auth_ldap.php?result='0'");
	elseif ( $bind == TRUE )   // on peut ajouter d'autre traitement si l'identification est ok ( ex : $_SESSION['user'] = ... )
		{
			header("location: index.php");
		}
	} 
elseif ( preg_match("!".$membres."!",$info[0]["dn"]) ) // si le user trouvé est membres :
	{
    $bind = ldap_bind($connect,$info[0]["dn"],$password);
	if ( $bind == FALSE )  // si le BIND est FALSE, le mot de passe est erronée
		// echo( " il est membre mais faux mdp");
		header("location: auth_ldap.php?result='0'");
	
	elseif ( $bind == TRUE )  // on peut ajouter d'autre traitement si l'identification est ok ( ex : $_SESSION['user'] = ... )
		{
			header("location: index.php");
		}
	}
else // le user n'a pas pu être trouvé
{
// echo  "nom de user invalide";
header("location: auth_ldap.php?result='1'");
}


ldap_close($connect);
?> 

 Conclusion

pour info , le test s'effectue sur le ldap_bind qui retourne une erreur en cas d'echec. mais comme la redirection est rapide on ne le voit pas.


 Historique

04 août 2005 21:05:14 :
jai tenu compte de la 1 ere remarque, c'était une erreur de ma part de laisser les echo qui n'ont rien a faire la et qui dans les standards W3C pouvaient géner sur certains navigateur l'utilisation de header(location: xxxx)

 Sources de la même categorie

Source avec Zip IPHONE - ICÔNE D'APPEL TÉLÉPHONIQUE SUR L'ÉCRAN D'ACCUEIL par Rainbow
Source avec Zip Source avec une capture [APP WEB]SERVEUREXPLOREUR par thematrix01
Source avec Zip Source avec une capture MY.BOOKMARKS par inwebo
Source avec Zip M.V.C M.E.D par faceme
Source avec Zip Source avec une capture MOTEUR DE RECHERCHE YOUTUBE API par mtrix000

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
Source avec Zip MYGGL GOOGLE API CLASS FOR BEGINERZ par lezj
Source avec Zip Source avec une capture LOGIN SHA1 + CRÉATION UTILISATEUR par aventurier19
Source avec Zip AUTHENTIFICATION LDAP | AD 2003SERVEUR par vincseize

Commentaires et avis

Commentaire de garfield90 le 04/08/2005 18:45:11

commente
echo "Le user est admin"; et echo "Le user est membre";
car la on peut faire du BRUTE FORCE pour trouvé le mdp étant donné que l'on sait que le login existe

sinon le code a l'air correct, pas d'annuaire LDAP sous la main ;)

Commentaire de glad le 05/08/2005 08:41:58

Salut,

Cool, justement je m'embête avec ça depuis un certain temps. J'arrivais partiellement à l'utiliser mais pas bien. Et là je vois deux ou trois options que je n'utilisais pas !
Merci :-)
Si t'as d'autres trucs avec AD, je suis intéressé.
Bonne continuation.

à ++

Commentaire de gadou le 08/12/2005 17:49:43

bonjour,
je cherche exactement la meme chose mais en ASP
je ne trouve pas...
quelqu'un peut m'aider.?
merci

Commentaire de Toto102 le 09/01/2006 12:51:07

salut;
pour l ASP vous pouvez voir le lien suivant:
http://www.rallenhome.com/books/ad2e/code.html
bonne chance

Commentaire de crashyear le 23/10/2006 16:13:49

Bonjour,

Je viens de tester ce code qui m'a l'air bien... mais moi j'ai un souci, il m'affiche le message suivant >>erreur lors de la recherche<< qui se trouve à la ligne 22.
Comme je n'y connai rien en AD et en LDAP quelqu'un pourrait-il m'aider à comprendre?

Merci

Commentaire de crashyear le 23/10/2006 17:36:08

c'est bon merci pour toutes ces réponses... lol euh je n'avait juste pas les droits nécessaire j'ai donc vu avec mon admin réseau et voila!!!

Commentaire de suzye le 15/03/2007 14:10:28

bonjour a vous j'ai un probléme de connection sur l'annuaire ldap avec un login et un password en php quelqu'un pourrait il m'aider et qd je teste ce code j'ai une erreur

Commentaire de dtraversa83 le 21/03/2007 14:41:23

j'ai moi aussi un pb que je n'arrive pas a résoudre : >>erreur lors de la recherche<<
comment résoudre ce pb ?

Commentaire de foxmaster le 17/12/2007 15:40:52

Bonjour moi aussi j'ai le meme soucis ça bloque sur erreur de la recherche, j'ai simplifé le code pour avoir uniquement ce ci:
<?php
// informations de connexions
$ldap_host = "localhost";  //inserer ici l'addresse du serveur LDAP
$base_dn = "DC=GUESSANT,DC=ORG";
$user = "cn=".$_POST['user'];  //  on traite les information recoltées
$password = $_POST['pass'];
$admin="admin";  // indiquez ici le groupe auquels appartient les admin et les membres. dans mon exemple, j'ai un o=admin et un o=membres.
$membres="membres";
$connect = ldap_connect($ldap_host)  // connexion en anonymous
    or exit(">>Connexion au serveur LDAP echoué<<");


ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);  // on passe le LDAP en version 3, necessaire pour travailler avec le AD
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);

$read = ldap_search($connect,$base_dn, $user)
     or exit(">>erreur lors de la recherche<<");
ldap_close($connect);

?>
en mettant mes parametres bien évidemment mais ça me met cete erreur ...

Warning: ldap_search() [function.ldap-search]: Search: Operations error in E:\intranet\eiffagest_interim\Untitled-2.php on line 11
>>erreur lors de la recherche<<

merci pour votre aide

Commentaire de zobinems le 17/01/2008 17:32:58

c'est normal que ca ne marche pas
Active Directory n'accepte pas les connection en anonyme

Commentaire de angellestat le 01/06/2009 12:41:03

Bonjour, jusqu'a present le probleme de recherche n'est pas resolu.
que faut il faire alors? un Bind authentifié avant de lancher la recherche?
Car dans le code ci dessous il recherche avant de faire ldap_bind;
De plus le ldap_connect ne prend pas de parametre d'authentification
Alors quelqu'un aurait il une idee pour y parvenir?
merci
ps: les mot de passe dans active D sont cryptés alors comment les tester avec celui envoyé par formulaire?

Commentaire de zobinems le 01/06/2009 16:37:44

si tu veux tester les mot de passe AD il te suffit de te connecter avec ce couple login/mdp, ainsi tu vois si tu est rejeté ou non

Commentaire de ERDOGANAK le 02/06/2009 14:56:27

Bonjour,

Je suis en stage, et j'obtiens la même erreur que vous:

Warning: Wrong parameter count for ldap_search() in C:\wamp\www\debut\traitement.php on line 16
>>erreur lors de la recherche<<

Quelqu'un a une solution ??

Commentaire de zobinems le 02/06/2009 15:57:41

pas facile sans le code ...

Commentaire de TBSO59 le 15/06/2010 15:50:52 1/10

.              

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

php Active directory LDAP [ par weedtrompette ] Bonjour &#224; tous,Juste une petite question. J'&#233;tudie actuellement la possibilit&#233; pour une appli web d'acc&#233;der &#224; un annuaire act connexion à Active Directory via php [ par jalal2007 ] Salut tout j'ai un probléme de connextion à AD via PHP. a tous les pro du php [ par vrkill2 ] bonjour a tous qui peux mexpliqué clairement comment utiliser se code svp merci     &lt;?php // Démarage de la session PHP4// Il faut tou Lister utilisateur Active Directory [ par rouliendelavegas ] Bonjour,Quelle fonction permet de lister les utilisateur d'un active directory?Merci Creation de compte Active Directory via un page Web [ par karimod ] Bonjour, Je suis actuellement en train de faire un projet sur la mise en place d'un portail captif (pfsense) dans lequel les utilisateurs devront s'au connexion avec login et pasword [ par stanly145 ] je suis vraiment débutent en phpet je vx savoir comment faire pr realiser une connexion avec login et pasword apartir dune base de donné sql "easy php verification du login dans la base [ par elksibi ] Bonsoir,J'ai un probleme avec la redirection header ("location") et la verification du mot de passe dans la base en PHP.D'abord, j'ai un formulaire, q Connexion à une application PHP en en passant par Active Directory [ par anaa21 ] Bonjour à tous,J'ai deux postes:Le premier est un poste client sur lequel j'ai installé Windows XP.Le deuxième post importation de données depuis Active Directory vers MySQL [ par somehowsomeway ] Salut, SVP aidez moi     je dispose, dans un réseau d'ordinateurs, d'un annuaire Active Directory sur une machine (windows); jè installé en local un f pb suppression cookies [ par joebuz ] Bonjour, j'avais une section membre toute b&#234;te avec un formulaire de log sur l'index renvoyant a la page connexion et une fois logg&#233; un bout


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,746 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales