Bonjour,

j'ai un probléme d'authentification pour la connexion a mon site intranet

voila le code de ma page connexion_ldap.PHP

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<?php
// Connexion a mysqli
$link = mysqli_connect("localhost", "root", "", "intra")or die("Impossible de se connecter : " . mysqli_error());
 
//$baseDN = 'cn=users, dc=vernon27, dc=local';
$baseDN = 'OU=Services, DC=vernon27, DC=local';
$ldapServer = '172.20.1.3';
$rdn = 'intra_ldap';
$mdp = '123456';
$user = "cn=".$_POST['login'];
$password = $_POST['password'];
$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";
 
	// Connexion au serveur
	echo "Connexion au serveur <br />";
	$conn=ldap_connect($ldapServer);
 
	// on teste : le serveur LDAP est-il trouvé ?
	if ($conn)
	{
		echo "Le résultat de connexion est ".$conn ."<br />";
	}
	else
	{
		die("connexion impossible au serveur LDAP");
	}
 
// 2ème étape : on effectue une liaison au serveur, ici de type "anonyme" pour une recherche permise par un accès en lecture seule
 
	// On dit qu'on utilise LDAP V3, sinon la V2 par défaut est utilisé et le bind ne passe pas. 
	if (ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3))
	{
		echo "Utilisation de LDAPv3 \n";
	} 
	else 
	{
		echo "Impossible d'utiliser LDAP V3\n";
		exit;
	}
 
	print ("Connexion authentifiée ...<br />");
	$bindServerLDAP=ldap_bind($conn,$rdn,$mdp);
 
	// nom d'utilisateur
if (isset($_POST['login'])) {
    $username = $_POST['login'];
}
 
 
	// mot de passe utilisateur
	$auth_pass = $_POST['password'];
 
	// nom de domaine
	$domaine = "VERNON27.local";
 
 
	// nom d'utilisateur + @ + nom de domaine
	$auth_user = $identifiant."@".$domaine;
 
 
	// resultat de connexion
	if (!($bind=@ldap_bind($conn, $auth_user, $auth_pass))) 
	{
		// l'utilisateur ou le mdp est refusé
		echo "Nom d'utilisateur ou mot de passe refusé ! ";
		echo "<a href='index.php'>Retour";
	}
	else 
	{
		// l'utilisateur ou le mdp est accepté
		echo "Utilisateur authentifié avec succès !";
 
		echo "Recherche suivant le filtre (email=*@vernon27.fr) <br />";
		$query = "mail=".$_POST['login']."@vernon27.fr";
 
		$result = ldap_search($conn, $baseDN, $query);
		echo "Le résultat de la recherche est $result <br />";
		echo "LDAP-Errno: " . ldap_errno($conn) . "<br />\n";
		echo "LDAP-Error: " . ldap_error($conn) . "<br />\n";
 
		echo "Le nombre d'entrées retournées est ".ldap_count_entries($conn,$result)."<p />";
 
		echo "Lecture de ces entrées ....<p />";
		$info = ldap_get_entries($conn, $result);
		echo "Données pour ".$info["count"]." entrées:<p />";
 
		// Atrributs de l'entrée
		$entry = ldap_first_entry($conn, $result);
		$attrs = ldap_get_attributes($conn, $entry);
 
		echo $attrs["count"] . " attributs dans cette entrée :<p>";
 
		//Démarrage de la session
		session_start();
 
		// Informations de l'entrée
		for ($i=0; $i < $info["count"]; $i++)
		{
			//Mise en session des données
			$_SESSION['prenom'] = $info[$i]["givenname"][0];
			$_SESSION['nom'] = $info[$i]["sn"][0];
			$_SESSION['courriel'] = $info[$i]["mail"][0];
 
			$d = 0;
			while ($info[$i]["memberof"][$d])
			{
				echo $info[$i]["memberof"][$d];
				echo '<br>';
				$pieces = explode(',', $info[$i]["memberof"][$d]);
				echo $pieces[0];
				$groupes = $groupes.''.$pieces[0].'.';
				echo '<br>';
				$d++;
			}
		}
		/*
		while ($array[$d])
		{
			$groupes = $array[$d]'.';
			$d++;
		}*/
		echo $groupes;
		echo "Fermeture de la connexion";
		ldap_close($conn);
 
		// Vérification de l'existence de l'utilisateur
		$reqVerif = mysqli_query($link,
		' SELECT Id_utilisateurs, Num_sections
			FROM utilisateurs
			WHERE Pseudo="'.$_POST['login'].'"
		')or die("Pb avec la requete: $reqVerif"); 
		$existUser = mysqli_fetch_array($reqVerif);
 
		if($existUser['Id_utilisateurs'] == '') 
		{ 
			//Création de l'utilisateur pour la première fois
			mysqli_query($link,  "INSERT INTO utilisateurs (Id_utilisateurs, Nom, Prenom, Pseudo, Mot_de_passe, Courriel, Telephone, Groupes, Num_groupes, Num_sections) 
						VALUES('', '".$_SESSION['nom']."', '".$_SESSION['prenom']."', '".$_POST['login']."', '', '".$_SESSION['courriel']."', '5557545759', '".$groupes."', '1', '1')");
 
			echo "Insertion en base de données. Veuillez vous reconnecter pour accèder à l'intranet.";
		} 
		else 
		{ 
			//Connexion de l'utilisateur déjà présent dans la base avec UPDATE du statut si modification
			echo "OK Auth USER</br>";
 
			mysqli_query($link,  
			" UPDATE utilisateurs 
			SET Groupes = '".$groupes."'
			WHERE Nom = '".$_SESSION['nom']."'
			AND Prenom = '".$_SESSION['prenom']."'
			");
 
			if(strstr($groupes, 'Intra_Intranet'))
			{
				$_SESSION['id_utilisateurs'] = $existUser['Id_utilisateurs'];
				$_SESSION['num_sections'] = $existUser['Num_sections'];
 
				//echo "<a href='accueil.php'>Poursuivre</a>";
				header('Location: accueil.php');
			}
			else
				echo "Vous n'avez pas de droit d'utilisation.";
				echo '<br>';
				echo '<a href="index.php">Retour</a>';
		}
	}
?>
ET VOILA L'erreur : Connexion au serveur
Le résultat de connexion est Resource id #3
Utilisation de LDAPv3 Connexion authentifiée ...

Notice: Undefined variable: identifiant in C:\Program Files\EasyPHP-12.1\www\intranet\connexion_ldap.php on line 59
Nom d'utilisateur ou mot de passe refusé ! Retour