By 3 Aprile 2024

PhP script – Verifica se un utente Appartiene ad un Gruppo + Login

Il seguente script PHP si connette ad Active Directory (LDAP) e verifica se un determinato utente appartiene ad un gruppo.

<?php

// Parametri di connessione LDAP
$ldap_host = ‘10.17.26.14’;
$ldap_port = 389;
$ldap_base_dn = ‘CN=Users,DC=dominio,DC=net’; // Modificare con il proprio base DN

// Credenziali dell’utente per eseguire la query
define(‘USERNAME’, ‘dominio\utenteAdmin’);
define(‘PASSWORD’, ‘*******’);

// Connessione LDAP
$ldap_connection = ldap_connect($ldap_host, $ldap_port);
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);

if ($ldap_connection) {
// Bind LDAP con l’utente per eseguire la query
$ldap_bind = ldap_bind($ldap_connection, USERNAME, PASSWORD);

if ($ldap_bind) {
// Username dell’utente da verificare

// Modificare con il nome utente da verificare —————–
$username = ‘utentecercato’;
// ————————————————————-

$group_dn = ‘CN=gruppodesiderato,CN=Users,DC=dominio,DC=net’; // Modificare con il DN del gruppo

// Ricerca dell’utente LDAP
$ldap_filter = “(uid=$username)”;
$ldap_search = ldap_search($ldap_connection, $ldap_base_dn, $ldap_filter);
$ldap_entries = ldap_get_entries($ldap_connection, $ldap_search);

if ($ldap_entries[‘count’] > 0) {
$user_dn = $ldap_entries[0][‘dn’];

// Verifica se l’utente è membro del gruppo
$ldap_group_search = ldap_read($ldap_connection, $group_dn, “(member=$user_dn)”);
$ldap_group_entries = ldap_get_entries($ldap_connection, $ldap_group_search);

if ($ldap_group_entries[‘count’] > 0) {
echo “L’utente $username e membro del gruppo.”;
//GESTIRE QUI CASO DI LOGIN OK———————————–

} else {
echo “L’utente $username non e membro del gruppo.”;
}
} else {
echo “Utente non trovato.”;
}
} else {
echo “Errore di autenticazione LDAP.”;
}

// Chiusura della connessione LDAP
ldap_close($ldap_connection);
} else {
echo “Impossibile connettersi al server LDAP.”;
}

?>

Attenzione all’installato di PHP perchè per farlo funzionare seve il pacchetto php-ldap
(sul server di prova ho usato php 7.4-ldap)

Restiamo in contatto:

 

Serverbay, Windows Server, Server Blog, Windows Server blog, Blog Sysadmin, Blog informatica, Blog informatico Windows Server

Posted in: Active Directory, Php

About the Author:

shared on wplocker.com