« Commandes LDAP avec PHP » : différence entre les versions
Aller à la navigation
Aller à la recherche
(Page créée avec « == Rechercher un utilisateur dans l'annuaire == La fonction attend les informations suivantes : * '''Nom''' de la personne recherchée. * '''Prénom''' de la personne recherchée. La fonction retournera le résultats suivant en fonction des conditions suivantes : * '''L'utilisateur a été trouvé :''' retourne un tableau avec les informations de l'utilisateur. * '''L'utilisateur n'a pas été trouvé :''' retourne le code d'erreur 404. * '''La requête n'a pas... ») |
(Aucune différence)
|
Version du 8 avril 2025 à 16:11
Rechercher un utilisateur dans l'annuaire
La fonction attend les informations suivantes :
- Nom de la personne recherchée.
- Prénom de la personne recherchée.
La fonction retournera le résultats suivant en fonction des conditions suivantes :
- L'utilisateur a été trouvé : retourne un tableau avec les informations de l'utilisateur.
- L'utilisateur n'a pas été trouvé : retourne le code d'erreur 404.
- La requête n'a pas aboutie (serveur indisponible ou requête interdite) : retourne le code d'erreur 403.
<?php
# CONFIG. CONNECTEUR AD
# ------------------------------
# À renseigner
# Domaine ActiveDirectory
define("LDAP_DOMAIN","ncad.fr");
# Serveur ActiveDirectory
define("LDAP_SERVER_NAME","ldaps://".LDAP_DOMAIN);
# Compte AD utilisé pour exécuter la commande
define("LDAP_SERVER_LOGIN","JOB0001-NCAD");
# Mot de passe du compte AD
define("LDAP_SERVER_PASSWORD","M0n#P45-sW0rDSuQ3Rc0pl!qu3");
# OU recherche comptes utilisateurs
define("LDAP_DN","OU=FIGEAC,DC=ncad,DC=fr");
# FONCTION ldap_search_user
# ------------------------------
function ldap_search_user($firstname, $lastname)
{
if ($ldap_connection=@ldap_connect(LDAP_SERVER_NAME)) {
$ldapBind = ldap_bind($ldap_connection,LDAP_SERVER_LOGIN."@".LDAP_DOMAIN,LDAP_SERVER_PASSWORD);
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version');
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0); // We need this for doing an LDAP search.
$ldap_base_dn = LDAP_DN;
$search_filter = "(&(sn=$firstname)(givenname=$lastname))";
$attributes = array();
$attributes[] = 'givenname';
$attributes[] = 'mail';
$attributes[] = 'samaccountname';
$attributes[] = 'sn';
$attributes[] = 'department';
$result = ldap_search($ldap_connection, $ldap_base_dn, $search_filter, $attributes);
if (FALSE !== $result){
$entries = ldap_get_entries($ldap_connection, $result);
if ($entries['count'] >= 1) {
$result = $entries;
} else {
$result = "404";
}
} else {
$result = "403";
}
ldap_unbind($ldap_connection); // Clean up after ourselves.
} else {
$result = "403";
}
return $result;
}
# TEST DE LA FONCTION
# ------------------------------
$ldap_search_result = ldap_search_user(
"CACHELOU",
"Nicolas"
);
print_r($ldap_search_result);
?>