Obtenir le Nom Complet de l'utilisateur à partir d'Active Directory à l'aide de PHP

J'ai une page de connexion qui utilise PHP/LDAP pour mes utilisateurs d'accéder à un site web de l'entreprise. Ci-dessous, j'ai créé une déclaration qui stocke l'utilisateur de l'AD l'appartenance à un groupe dans une variable, pour être utilisé plus tard pour rediriger en fonction de l'adhésion de l'utilisateur dans AD>

Maintenant, maintenant, j'aimerais aussi ajouter la possibilité d'obtenir le nom complet de l'utilisateur à partir d'Active Directory, et les stocker pour une utilisation ultérieure. Comment puis-je modifier ma déclaration ci-dessous pour stocker le nom complet de l'utilisateur à partir d'Active Directory dans une autre variable? Des idées??

//verify user and password
if($bind = @ldap_bind($ldap, $user . $ldap_usr_dom, $password)) {
    //valid
    //check presence in groups
    $filter = "(sAMAccountName=" . $user . ")";
    $attr = array("memberof");
    $result = ldap_search($ldap, $ldap_dn, $filter, $attr) or exit("Unable to search LDAP server");
    $entries = ldap_get_entries($ldap, $result);
  /* I would like to get and store the user's display name here somehow */
    ldap_unbind($ldap);

    //check groups
    foreach($entries[0]['memberof'] as $grps) {
        //is manager, break loop
        if (strpos($grps, $ldap_manager_group)) { $access = 2; break; }

        //is user
        if (strpos($grps, $ldap_user_group)) $access = 1;
    }

    if ($access != 0) {
        //establish session variables
        $_SESSION['user'] = $user;
        $_SESSION['access'] = $access;
        return true;
    } else {
        //user has no rights
        return false;
    }

} else {
    //invalid name or password
    return false;

Merci d'avance pour toute aide/suggestions!

MODIFIER

Voici maintenant ma page PHP avec mannequin domaine des trucs, mais j'obtiens une erreur de syntaxe et je peux le problème 🙁 et de l'aide ou idée? Merci Alex pour la première aide !

    <?php
function authenticate($user, $password) {
//Active Directory server
$ldap_host = "my FQDC DC";
//Active Directory DN
$ldap_dn = "DC=something,DC=something";
//Active Directory user group
$ldap_user_group = "WebUsers";
//Active Directory manager group
$ldap_manager_group = "WebManagers";
//Domain, for purposes of constructing $user
$ldap_usr_dom = "@mycompany.com";
//connect to active directory
$ldap = ldap_connect($ldap_host);
//verify user and password
if($bind = @ldap_bind($ldap, $user . $ldap_usr_dom, $password)) {
//valid
//check presence in groups
$filter = "(sAMAccountName=" . $user . ")";
$attr = array("memberof","givenname");
$result = ldap_search($ldap, $ldap_dn, $filter, $attr) or exit("Unable to search LDAP server");
$entries = ldap_get_entries($ldap, $result);
$givenname = $entries[0]['givenname'];
ldap_unbind($ldap);
//check groups
foreach($entries[0]['memberof'] as $grps) {
//is manager, break loop
if (strpos($grps, $ldap_manager_group)) { $access = 2; break; }
//is user
if (strpos($grps, $ldap_user_group)) $access = 1;
}
if ($access != 0) {
//establish session variables
$_SESSION['user'] = $user;
$_SESSION['access'] = $access;
$_SESSION['givenname'] = $givenname;
return true;
} else {
//user has no rights
return false;
}
} else {
//invalid name or password
return false;
}
?>
  • Pouvez-vous afficher le message d'erreur?
  • Bonjour Alex, j'ai été absent un crochet à la fin; désolé pour l'erreur de débutant. :S Merci à tous pour votre aide!
InformationsquelleAutor user1236435 | 2012-02-27