Authentification ldap en php via login/passw
hismaella
Messages postés
18
Statut
Membre
-
juninho269 -
juninho269 -
bonjour à tous,
j'ai un probléme d'authentification ldap en php via login et password quelqu'un pourrait - il m'aider ? en faite je dois pouvoir me logger à un annuaire ldap en introduisant un login et un mot de pass merci de m'aider si vous pouvez
j'ai un probléme d'authentification ldap en php via login et password quelqu'un pourrait - il m'aider ? en faite je dois pouvoir me logger à un annuaire ldap en introduisant un login et un mot de pass merci de m'aider si vous pouvez
A voir également:
- Authentification ldap en php via login/passw
- Double authentification google - Guide
- On me demande mon login ✓ - Forum Webmastering
- Mon pc me demande mon login é mon mo de passe - Forum Windows
- Easy php - Télécharger - Divers Web & Internet
- Facebook.com/login/identify en francais ✓ - Forum Réseaux sociaux
3 réponses
désolé pour la maniére d'envoyer le code je n'ai pas l'habitude j'essaye d'aranger cela voilà ma page toto.php
<?php
/* Fichier : LDAP.class.php */
// Création de la classe
class LDAP
{
// Attribut du login du LDAP
var $LDAP_login;
// Attribut du password du LDAP
var $LDAP_password;
// Attribut de l'hôte du LDAP
var $LDAP_host;
// Attribut de connection
var $connect;
//Identification
var $identification;
// Définition du constructeur
function LDAP($login, $password, $host)
{
// Vérification des variables
if (empty ($login) || empty ($host) || empty ($password)){
// Affichage du message d'erreur
//echo "<b>Erreur :</b> Une ou plusieurs variable(s) n'ont pas été renseigné.<br>Procédure interrompu";
exit;
}
else {
// Initialisation des attributs
$this->LDAP_login = $login;
$this->LDAP_password = $password;
$this->LDAP_host = $host;
}
}
//fonction de connection
function connect()
{
// Connection à LDAP
$this->connect = @ldap_connect($this->LDAP_host);
// Vérification de la connection
if (!$this->connect){
// Affichage du message d'erreur
//echo "<b>Erreur :</b> Connection au serveur impossible impossible<br>";
return false;
}else{
return true;
}
// Initialisation de l'attribut de connection
}
// Méthode Identification()
function identification ()
{
// Exécution de l'identification
$ident = @ldap_bind($this->connect, $this->LDAP_login, $this->LDAP_password);
//Vérification de la connection
if ($ident) {
$this->identification = $ident;
return true;
} else {
//echo "Echec d'identification<br>";
return false;
}
}
//fonction recherche
// Attention le serveur est configurer pourne pas tolerer plus de 200 réponses a la requete
// temps de recherche maximale 2 secondes
function recherche($Nom)
{
echo 'Recherchons (sn='.$Nom.') ...';
// Recherche par nom
$search = ldap_search($this->connect, 'o="à compléter", c=fr', "sn=$Nom"); echo 'Le résultat de la recherche est ' . $search . '<br />';
echo 'Le nombre d\'entrées retournées est ' . ldap_count_entries($this->connect,$search) . '<br />';
echo 'Lecture des entrées ...<br />';
$info = ldap_get_entries($this->connect, $search);
echo 'Données pour ' . $info["count"] . ' entrées:<br />';
for ($i=0; $i<$info["count"]; $i++) {
echo 'dn est : ' . $info[$i]["dn"] . '<br />';
echo 'premiere entree cn : ' . $info[$i]["cn"][0] . '<br />';
echo 'premiere entree sn : ' . $info[$i]["sn"][0] . '<br />';
echo 'premier email : ' . $info[$i]["mail"][0] . '<br />';
echo 'premier givenName : ' . $info[$i]["givenName"][0] . '<br />';
echo 'premier uid : ' . $info[$i]["uid"][0] . '<br />';
}
}
// Méthode deconnect()
function deconnect (){
// Déconnection
$deconnect = ldap_unbind($this->connect);
if(!$deconnect)
ldap_close($this->connect);//c les bretelles et la ceinture :)
}//fin de déconnexion
}//fin de class
?>
j'ai un probléme dauthentification ldap avec mon code et je ne vois pas ou vien l'erreur qq pourrait il m'aider car j'ai ma fenêtre d'authentification qui s'ouvre mais je dois cliquer 3 fois sur le boutton OK et ça ne m'affiche pas la page demandé si le login et le pass est bon voilà mon code:
<?php
$annu1 = "didie"; //Annuaire Principal il faut remplir avec le nom de ton serveur ou l'adresse ip si c'est pas défini
include "./toto.php";
header('WWW-Authenticate: Basic realm="LDAP"'); //fenetre de login ca sort tout seul une jolie fenetre
/*j'ai oublié ca sans quoi ca ne te ramene pas les variables*/
if(phpversion() < 4.2){
foreach($HTTP_SERVER_VARS as $NomVar => $Value) $$NomVar = $Value;
}else{
foreach($_SERVER as $NomVar => $Value) $$NomVar = $Value;
}
session_start();
//$identification = "0";
if($PHP_AUTH_USER != '' && $PHP_AUTH_PW != ''){
//---------------------------------------LDAP-------------------------------------------
$serveur1 = new LDAP($PHP_AUTH_USER,$PHP_AUTH_PW,$annu1);
if($serveur1->connect()){ //connexion au serveur LDAP
if($serveur1->identification()){ //identification au serveur LDAP
//------------------si identification ok
header("location: ./inde.php"); //page suivante de ta page d'authentification
/*le code doit etre situé en debut de page si tu utilise le header sinon ca va planter
si tu ne veut pas utiliser le header il y a moyen en fait tu met ici tout le code a executer si l'authentification est bonne*/
}else{
//l'utilisateur n'a pas ete reconnu dans l'annuaire LDAP
}
$serveur1->deconnect(); //on se deconnect du serveur c'est plus propre quand meme
}else{
//connexion impossible
}
}else{
//il faut remplir les champ
}
?>
et voilà ma page toto.php:
<?php
/* Fichier : LDAP.class.php */
// Création de la classe
class LDAP
{
// Attribut du login du LDAP
var $LDAP_login;
// Attribut du password du LDAP
var $LDAP_password;
// Attribut de l'hôte du LDAP
var $LDAP_host;
// Attribut de connection
var $connect;
//Identification
var $identification;
// Définition du constructeur
function LDAP($login, $password, $host)
{
// Vérification des variables
if (empty ($login) || empty ($host) || empty ($password)){
// Affichage du message d'erreur
//echo "<b>Erreur :</b> Une ou plusieurs variable(s) n'ont pas été renseigné.<br>Procédure interrompu";
exit;
}
else {
// Initialisation des attributs
$this->LDAP_login = $login;
$this->LDAP_password = $password;
$this->LDAP_host = $host;
}
}
//fonction de connection
function connect()
{
// Connection à LDAP
$this->connect = @ldap_connect($this->LDAP_host);
// Vérification de la connection
if (!$this->connect){
// Affichage du message d'erreur
//echo "<b>Erreur :</b> Connection au serveur impossible impossible<br>";
return false;
}else{
return true;
}
// Initialisation de l'attribut de connection
}
// Méthode Identification()
function identification ()
{
// Exécution de l'identification
$ident = @ldap_bind($this->connect, $this->LDAP_login, $this->LDAP_password);
//Vérification de la connection
if ($ident) {
$this->identification = $ident;
return true;
} else {
//echo "Echec d'identification<br>";
return false;
}
}
//fonction recherche
// Attention le serveur est configurer pourne pas tolerer plus de 200 réponses a la requete
// temps de recherche maximale 2 secondes
function recherche($Nom)
{
echo 'Recherchons (sn='.$Nom.') ...';
// Recherche par nom
$search = ldap_search($this->connect, 'o="à compléter", c=fr', "sn=$Nom"); echo 'Le résultat de la recherche est ' . $search . '<br />';
echo 'Le nombre d\'entrées retournées est ' . ldap_count_entries($this->connect,$search) . '<br />';
echo 'Lecture des entrées ...<br />';
$info = ldap_get_entries($this->connect, $search);
echo 'Données pour ' . $info["count"] . ' entrées:<br />';
for ($i=0; $i<$info["count"]; $i++) {
echo 'dn est : ' . $info[$i]["dn"] . '<br />';
echo 'premiere entree cn : ' . $info[$i]["cn"][0] . '<br />';
echo 'premiere entree sn : ' . $info[$i]["sn"][0] . '<br />';
echo 'premier email : ' . $info[$i]["mail"][0] . '<br />';
echo 'premier givenName : ' . $info[$i]["givenName"][0] . '<br />';
echo 'premier uid : ' . $info[$i]["uid"][0] . '<br />';
}
}
// Méthode deconnect()
function deconnect (){
// Déconnection
$deconnect = ldap_unbind($this->connect);
if(!$deconnect)
ldap_close($this->connect);//c les bretelles et la ceinture
}//fin de déconnexion
}//fin de class
?>
merci de m'aider si vous pouvez
<?php
$annu1 = "didie"; //Annuaire Principal il faut remplir avec le nom de ton serveur ou l'adresse ip si c'est pas défini
include "./toto.php";
header('WWW-Authenticate: Basic realm="LDAP"'); //fenetre de login ca sort tout seul une jolie fenetre
/*j'ai oublié ca sans quoi ca ne te ramene pas les variables*/
if(phpversion() < 4.2){
foreach($HTTP_SERVER_VARS as $NomVar => $Value) $$NomVar = $Value;
}else{
foreach($_SERVER as $NomVar => $Value) $$NomVar = $Value;
}
session_start();
//$identification = "0";
if($PHP_AUTH_USER != '' && $PHP_AUTH_PW != ''){
//---------------------------------------LDAP-------------------------------------------
$serveur1 = new LDAP($PHP_AUTH_USER,$PHP_AUTH_PW,$annu1);
if($serveur1->connect()){ //connexion au serveur LDAP
if($serveur1->identification()){ //identification au serveur LDAP
//------------------si identification ok
header("location: ./inde.php"); //page suivante de ta page d'authentification
/*le code doit etre situé en debut de page si tu utilise le header sinon ca va planter
si tu ne veut pas utiliser le header il y a moyen en fait tu met ici tout le code a executer si l'authentification est bonne*/
}else{
//l'utilisateur n'a pas ete reconnu dans l'annuaire LDAP
}
$serveur1->deconnect(); //on se deconnect du serveur c'est plus propre quand meme
}else{
//connexion impossible
}
}else{
//il faut remplir les champ
}
?>
et voilà ma page toto.php:
<?php
/* Fichier : LDAP.class.php */
// Création de la classe
class LDAP
{
// Attribut du login du LDAP
var $LDAP_login;
// Attribut du password du LDAP
var $LDAP_password;
// Attribut de l'hôte du LDAP
var $LDAP_host;
// Attribut de connection
var $connect;
//Identification
var $identification;
// Définition du constructeur
function LDAP($login, $password, $host)
{
// Vérification des variables
if (empty ($login) || empty ($host) || empty ($password)){
// Affichage du message d'erreur
//echo "<b>Erreur :</b> Une ou plusieurs variable(s) n'ont pas été renseigné.<br>Procédure interrompu";
exit;
}
else {
// Initialisation des attributs
$this->LDAP_login = $login;
$this->LDAP_password = $password;
$this->LDAP_host = $host;
}
}
//fonction de connection
function connect()
{
// Connection à LDAP
$this->connect = @ldap_connect($this->LDAP_host);
// Vérification de la connection
if (!$this->connect){
// Affichage du message d'erreur
//echo "<b>Erreur :</b> Connection au serveur impossible impossible<br>";
return false;
}else{
return true;
}
// Initialisation de l'attribut de connection
}
// Méthode Identification()
function identification ()
{
// Exécution de l'identification
$ident = @ldap_bind($this->connect, $this->LDAP_login, $this->LDAP_password);
//Vérification de la connection
if ($ident) {
$this->identification = $ident;
return true;
} else {
//echo "Echec d'identification<br>";
return false;
}
}
//fonction recherche
// Attention le serveur est configurer pourne pas tolerer plus de 200 réponses a la requete
// temps de recherche maximale 2 secondes
function recherche($Nom)
{
echo 'Recherchons (sn='.$Nom.') ...';
// Recherche par nom
$search = ldap_search($this->connect, 'o="à compléter", c=fr', "sn=$Nom"); echo 'Le résultat de la recherche est ' . $search . '<br />';
echo 'Le nombre d\'entrées retournées est ' . ldap_count_entries($this->connect,$search) . '<br />';
echo 'Lecture des entrées ...<br />';
$info = ldap_get_entries($this->connect, $search);
echo 'Données pour ' . $info["count"] . ' entrées:<br />';
for ($i=0; $i<$info["count"]; $i++) {
echo 'dn est : ' . $info[$i]["dn"] . '<br />';
echo 'premiere entree cn : ' . $info[$i]["cn"][0] . '<br />';
echo 'premiere entree sn : ' . $info[$i]["sn"][0] . '<br />';
echo 'premier email : ' . $info[$i]["mail"][0] . '<br />';
echo 'premier givenName : ' . $info[$i]["givenName"][0] . '<br />';
echo 'premier uid : ' . $info[$i]["uid"][0] . '<br />';
}
}
// Méthode deconnect()
function deconnect (){
// Déconnection
$deconnect = ldap_unbind($this->connect);
if(!$deconnect)
ldap_close($this->connect);//c les bretelles et la ceinture
}//fin de déconnexion
}//fin de class
?>
merci de m'aider si vous pouvez
Bonjour,
Il ya a une petite erreur dans ta class. Tes données membres doivent être privées pour que seulement les méthodes de la classe y est accès.
Donc :
// Attribut du login du LDAP
private $LDAP_login;
// Attribut du password du LDAP
private $LDAP_password;
// Attribut de l'hôte du LDAP
private $LDAP_host;
// Attribut de connection
private $connect;
//Identification
private $identification;
Il ya a une petite erreur dans ta class. Tes données membres doivent être privées pour que seulement les méthodes de la classe y est accès.
Donc :
// Attribut du login du LDAP
private $LDAP_login;
// Attribut du password du LDAP
private $LDAP_password;
// Attribut de l'hôte du LDAP
private $LDAP_host;
// Attribut de connection
private $connect;
//Identification
private $identification;