Authentification Intranet LDAP

Résolu
elmexicain Messages postés 4 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 1 février 2008 - 17 févr. 2007 à 15:34
elmexicain Messages postés 4 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 1 février 2008 - 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);

?>

2 réponses

elmexicain Messages postés 4 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 1 février 2008 1
21 févr. 2007 à 14:12
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





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

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

HELP ME PLEASE!!!!!!!!!!
0
Rejoignez-nous