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)
Seguici su:
Per maggiori informazioni, per suggerimenti e ottenere un preventivo gratuito per le tue esigenze, contattaci.
Il nostro staff di professionisti sarà lieto di fornire tutte le informazioni ed i costi riguardanti il servizio.
Attenzione : Sestech non è un servizio di helpdesk “gratuito” a cui chiedere informazioni.
Windows Server, Server Blog, Windows Server blog, Blog Sysadmin, Blog informatica, Blog informatico Windows Server