Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/07/2006, 16h43   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 3
Points : 0
Points : 0
Par défaut PHP + Active Directory

Bonjour à tous,

je ne débute pas en PHP mais je me heurte à un petit problème. Je souhaiterais créer une application Web en PHP avec authentification à un annuaire Active Directory. Pourriez-vous me donner quelques tuyaux car je ne vois pas trop comment faire... Si vous avez des tutoriaux ou autres à me donner, je suis preneur!

Merci d'avance
pogy29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 17h06   #2
Membre chevronné
 
Avatar de gerald2545
 
Inscription : février 2003
Messages : 643
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 643
Points : 660
Points : 660
je ne suis pas spécialiste AD, bien au contraire (je n'y ai jamais touché), mais ces champs doivent être clairement définis dans l'annuaire...tu dois bien y avoir accès en lecture au moins à cet annuaire,non?
gerald2545 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 15h51   #3
Invité de passage
 
Inscription : juillet 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 3
Points : 0
Points : 0
Bonjour,
suite aux réponses d'hier j'ai pu récupérer un script mais je n'arrive pas à le faire fonctionner. Voici ce script:

<?php
$ldap_host = "localhost"; /*Adresse du serveur LDAP*/
$base_dn = "DC=renesas-rdf , DC=local";

/*TRAITEMENT DES INFORMATIONS DU FORMULAIRES*/
$user = "cn=".$_POST['user'];
$password = $_POST['pass'];

$connect = ldap_connect($ldap_host); /*Connexion au serveur LDAP*/
ldap_set_option($connect,LDAP_OPT_PROTOCOL_VERSION,3); /*Passage du LDAP en V3 pour travailler avec l'AD*/
ldap_set_option($connect,LDAP_OPT_REFERRALS,0);
$read = ldap_search($connect, $base_dn, $user);
$info = ldap_get_entries($connect,$read);

$bind = ldap_bind($connect,$info[0]["dn"],$password);
if ($bind==FALSE) {
header("location:formulaire.php");
} elseif ($bind==TRUE) {
header("location:test.php");
}
ldap_close($connect);
?>


Et voici le message d'erreur que j'obtiens dans mon navigateur:
Warning: ldap_search(): Search: Operations error in d:\program files\easyphp1-8\www\intranet\test\login.php on line 12

Warning: ldap_get_entries(): supplied argument is not a valid ldap result resource in d:\program files\easyphp1-8\www\intranet\test\login.php on line 13


UNE IDEE???

Merci d'avance
pogy29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 15h58   #4
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Je m'y connais pas en Ldap mais est ce que les paramètres présent sur cette ligne sont correcte ?
$connect : c'est le bon paramètre attendu ?
ldap_search($connect, $base_dn, $user);
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 16h00   #5
Invité de passage
 
Inscription : juillet 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 3
Points : 0
Points : 0
Oui c'est bien ça qui est indiqué dans le manuel de PHP C'est pour ça que je commence à être un peu perdu!
pogy29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 16h43   #6
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Bon ben tu as quelques mois pour trouver car ça pourrais m'intéresser d'ici là
Regarde en dehors de la doc php parce qu'il arrive qu'ils commetent des erreurs ou que c'est pas à jour.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 08h56   #7
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Voici la classe dont je me sert pour m'identifier sous AD ainsi que la fonction associée

Pas de soucis ça fonctionne , par contre il faut faire attention à ton base DN et ton domaine (il faut voir çavec le gars qui gère l'AD) car si ils ne sont pas bons ça ne passera pas !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/********************
	  FONCTIONS
*********************/
/**
* Vérifie l'autentification à partir d'un login et d'un mot de passe
* @param $login Le login à considérer
* @param $password Le password à considérer
* @return True si le couple login/pwd est correct, false sinon
*/
function check_auth($login, $password)
{
  //Objet permettant d'acceder l'active directory
// Bon là ya des constantes qui définissent mes params 
  $ldap = new AuthLdap(_BONI_ADSERVER_,_BONI_ADCHAINELDAP_,"ActiveDirectory",_BONI_ADDOMAINE_);
 
  if ( $ldap->connect()) { 
    if ($ldap->checkPass( $login,$password)) {
      if ($ldap->getAttribute($login,'name')=="") {
        $ldap->close(); 
        return false;
      }
      $ldap->close(); 
      return true;
 
    } else {
      $ldap->close(); 
      return false;
    }
  } else
  {
	echo "Probleme de connexion.<br>";
	echo "Error code : " . $ldap->ldapErrorCode . "<br>";
	echo "Error text : " . $ldap->ldapErrorText . "<br>";
	return false;
  }
}
Voilà les constantes utilisées
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
/** 
 * Utilisé pour l'authentification par l'active directory : Serveur active directory
 */
define('_BONI_ADSERVER_','bon ben là c'est l'ip hein');
/** 
 * Utilisé pour l'authentification par l'active directory : Chaine ldap de recherche
 */
define('_BONI_ADCHAINELDAP_','dc=MABOITE,dc=SA');
/** 
 * Utilisé pour l'authentification par l'active directory : nom du Domaine
 * (ce qui se rajoute apres le nom d'utilisateur : xxxx at domaine
 */  
define('_BONI_ADDOMAINE_','maboite.sa');
Fichiers attachés
Type de fichier : php AuthLdap.php (20,4 Ko, 21 affichages)
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 10h25   #8
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Merci ça me servira.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h09.


 
 
 
 
Partenaires

Hébergement Web