PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » Authentification LDAP et restriction d'accès au page. » 09-01-2015 13:05:28

ybrun
Réponses : 0

Bonjour,

J'ai mis en place un site intranet dans mon centre de service informatique. L'accès à ce site se fait par une authentification via une connexion à une base MySQL.
Je souhaite modifier la méthode d'authentification avec requête LDAP.

Seulement, j'ai un problème qui ne trouve pas de solution.
J'ai actuellement 2 profils : Administrateur et Equipe Bureautique.
L'affichage de certaine page et leur accès se fait à partir du profil.

Mes en-tête (header) et sidebar s'affichent avec un include.

<?php
    if ((isset($_SESSION['MM_Username'])) && (!empty($_SESSION['MM_Username'])))
    {
        // le login a été enregistré dans la session, j'affiche le menu admin
        if ($_SESSION['MM_UserGroup']=='Admin')
            {include ('../inc/header/header_administrateur.inc.php');}
        // le login a été enregistré dans la session, j'affiche le menu bureautique
        elseif ($_SESSION['MM_UserGroup']=='Bureautique')
            {include ('../inc/header/header_bureautique.inc.php');}
    }
    else
    {
        // pas de login en session : proposer la connexion
        include ('../inc/header/header_users.inc.php');
    }
    ?>

L'accès à certaine page se fait via le script suivant :

?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "Admin";
$MM_donotCheckaccess = "false";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
  // For security, start by assuming the visitor is NOT authorized.
  $isValid = False;

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
  // Therefore, we know that a user is NOT logged in if that Session variable is blank.
  if (!empty($UserName)) {
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
    // Parse the strings into arrays.
    $arrUsers = Explode(",", $strUsers);
    $arrGroups = Explode(",", $strGroups);
    if (in_array($UserName, $arrUsers)) {
      $isValid = true;
    }
    // Or, you may restrict access to only certain users based on their username.
    if (in_array($UserGroup, $arrGroups)) {
      $isValid = true;
    }
    if (($strUsers == "") && false) {
      $isValid = true;
    }
  }
  return $isValid;
}

$MM_restrictGoTo = "../no_autorized.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo);
  exit;
}
?>

Je souhaiterai donc remplacer la variable $_SESSION['MM_UserGroup'] pour réaliser :
- 1) Une restriction d'accès à partir d'un groupe Active Directory.
- 2) L'affichage de mes headers et sidebar en fonction des groupes Active Directory.

Merci d'avance de votre réponse.

Yohann BRUN.

Pied de page des forums

Propulsé par FluxBB