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
|
<?php
//Gestion des données en sessions
session_start();
//L'adresse du serveur LDAP
$ldap_server = "ldap://*******";
//Identifiant LDAP
$auth_user = "***********";
$auth_pass = "***********";
//Vérification contenu de login et password si ok : mise en SESSION
if($_POST["login"] !="" && $_POST["password"] != ""){
$_SESSION["login"] = $_POST["login"];
$_SESSION["password"] = $_POST["password"];
}
else {header("location:index.php?erreur=badpassword");
exit; //Redirection à la page de login / Possibilité de personnaliser les messages d'erreurs
}
//Base DN
$base_dn = "OU=*****,DC=****,DC=******";
//Filtrage qui permet de vérifier si l'utilisateur est bien dans le groupe de l'application (restriction d'accès en fonction des applis)
$filter = "(&(objectCategory=user)(sAMAccountName=".$_SESSION["login"].")(memberOf=CN=*******,OU=*********,OU=*******,OU=*******,DC=******,DC=*******))";
//Connexion à la Base LDAP
if(!($connect=@ldap_connect($ldap_server))) die("Could not connect to ldap server");
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
//Authentification avec les logins LDAP
if(!($bind=@ldap_bind($connect, $auth_user, $auth_pass))) die("Unable to bind to server");
//Recherche si le login existe et qu'il soit bien dans un groupe spécifique à l'application grace au filtre
if (!($search=@ldap_search($connect, $base_dn, $filter))) die("Unable to search ldap server");
//Retourne le nombre d'enregistrement
$info = @ldap_get_entries($connect, $search);
$entrees = @ldap_first_entry($connect, $search);
$lockoutTime = @ldap_get_values($connect, $entrees, "lockoutTime");
//Si l'utilisateur existe on redirige sur la 2e page pour authentification avec le login et le password de l'utilisateur.
if($info["count"] == 1){
$_SESSION["dn"] = $info[0]["distinguishedname"][0];
if($lockoutTime[0] == 0) header('location:ldap_login.php');
else header('location:index.php?erreur=session');
}
else {
header('location:index.php?erreur=groupe');
}
?> |
Partager