|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CONNEXION LDAP AVEC LOGIN MOT DE PASSE EN PHP
Information sur la source
Description
ce code permet de verifier l'identité d'une personne se connectant a un annuaire LDAP ( dans mon cas Active directory ) la connexion se fait en anonymous et il est necessaire de creer une page a part avec un formulaire qui pointera sur cette page. en cas de succès d'identification, l'utilisateur est redirigé sur une page, sinon il revient sur la page de Login / mot de passe.
Source
- <?php
- // informations de connexions
-
- $ldap_host = "localhost"; //inserer ici l'addresse du serveur LDAP
- $base_dn = "DC=GUESSANT,DC=ORG";
-
- $user = "cn=".$_POST['user']; // on traite les information recoltées
- $password = $_POST['pass'];
-
- $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";
-
- $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);
- ?>
<?php
// informations de connexions
$ldap_host = "localhost"; //inserer ici l'addresse du serveur LDAP
$base_dn = "DC=GUESSANT,DC=ORG";
$user = "cn=".$_POST['user']; // on traite les information recoltées
$password = $_POST['pass'];
$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";
$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);
?>
Conclusion
pour info , le test s'effectue sur le ldap_bind qui retourne une erreur en cas d'echec. mais comme la redirection est rapide on ne le voit pas.
Historique
- 04 août 2005 21:05:14 :
- jai tenu compte de la 1 ere remarque, c'était une erreur de ma part de laisser les echo qui n'ont rien a faire la et qui dans les standards W3C pouvaient géner sur certains navigateur l'utilisation de header(location: xxxx)
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
php Active directory LDAP [ par weedtrompette ]
Bonjour à tous,Juste une petite question. J'étudie actuellement la possibilité pour une appli web d'accéder à un annuaire act
connexion à Active Directory via php [ par jalal2007 ]
Salut tout j'ai un probléme de connextion à AD via PHP.
a tous les pro du php [ par vrkill2 ]
bonjour a tous qui peux mexpliqué clairement comment utiliser se code svp merci <?php // Démarage de la session PHP4// Il faut tou
Lister utilisateur Active Directory [ par rouliendelavegas ]
Bonjour,Quelle fonction permet de lister les utilisateur d'un active directory?Merci
Creation de compte Active Directory via un page Web [ par karimod ]
Bonjour, Je suis actuellement en train de faire un projet sur la mise en place d'un portail captif (pfsense) dans lequel les utilisateurs devront s'au
connexion avec login et pasword [ par stanly145 ]
je suis vraiment débutent en phpet je vx savoir comment faire pr realiser une connexion avec login et pasword apartir dune base de donné sql "easy php
verification du login dans la base [ par elksibi ]
Bonsoir,J'ai un probleme avec la redirection header ("location") et la verification du mot de passe dans la base en PHP.D'abord, j'ai un formulaire, q
Connexion à une application PHP en en passant par Active Directory [ par anaa21 ]
Bonjour à tous,J'ai deux postes:Le premier est un poste client sur lequel j'ai installé Windows XP.Le deuxième post
importation de données depuis Active Directory vers MySQL [ par somehowsomeway ]
Salut, SVP aidez moi je dispose, dans un réseau d'ordinateurs, d'un annuaire Active Directory sur une machine (windows); jè installé en local un f
pb suppression cookies [ par joebuz ]
Bonjour, j'avais une section membre toute bête avec un formulaire de log sur l'index renvoyant a la page connexion et une fois loggé un bout
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|