Authentification Intranet LDAP [Résolu]

elmexicain 4 Messages postés samedi 19 novembre 2005Date d'inscription 1 février 2008 Dernière intervention - 17 févr. 2007 à 15:34 - Dernière réponse : elmexicain 4 Messages postés samedi 19 novembre 2005Date d'inscription 1 février 2008 Dernière intervention
- 21 févr. 2007 à 14:12
Bonjour a toutes et a tous.

Voila je suis en stage informatique dans une entreprise et elle m'a demandé de mettre en place une authentification php dans leur intranet. Cette authentification doit se faire en lien avec Active directory (sous Windows 2003 server).

J'ai donc essayé mais je ne connais strictement rien au service ldap dont j'ai enendu parler.

J'ai donc récupéré des sources sur phpcs après avoir activer la fonction ldap de easyphp 2.0 et le probleme est que lorsque je test la source, il semblerais qu'il réussise à se connecter mais lors de la recherche d'un ou plusieurs comptes utilisateurs il me renvoi :

Warning : ldap_search() : [function.ldap-search] : Search : Opération error in c:\...

je ne sais absolument pas d'ou vien le probleme et je suis vraiment embêté car l'entrprise souhaite que son intranet soit dispo dès le 01/03/07.

Ca fait 15 jours que je cherche désespérément alors si quelqu'un pouvait m'aider ce serait génial.

Pour plus d'infos voici mon code :

MERCI D'AVANCE.

///////////////////////////////////

<?php

// informations de connexions

$ldap_host = "192.168.1.2";  //inserer ici l'addresse du serveur LDAP

$base_dn = "DC=lasociete,DC=com"

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

$password = $_POST['pass'];

$admin="admin"; 

$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);

?>
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
elmexicain 4 Messages postés samedi 19 novembre 2005Date d'inscription 1 février 2008 Dernière intervention - 21 févr. 2007 à 14:12
1
Merci
En fait j'ai trouvé ce qu'il me faut !
Voici l'adresse pour ceux qui ont le même probleme :





http://fr2.php.net/manual/fr/ref.ldap.php





@ +

Merci elmexicain 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de elmexicain
elmexicain 4 Messages postés samedi 19 novembre 2005Date d'inscription 1 février 2008 Dernière intervention - 19 févr. 2007 à 14:06
0
Merci
Personne n'a de réponse à ma question ?

C'est super important et je suis complètement perdu...

HELP ME PLEASE!!!!!!!!!!
Commenter la réponse de elmexicain

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.