giovedì 19 ottobre 2017

Collegarsi all'active directory con il php (ldap)

Qualche tempo fa avevo fatto una guida su come usare il protocollo ldap in php, più che altro per collegarsi ad un database interno tramite openldap.
Oggi invece voglio affrontare una tematica un po' più specifica, ovvero l'active directory.

Chi è pratico di ambienti windows di sicuro già avrà sentito questo nome, infatti nell'active directory vengono salvati gli utenti ed i gruppi di rete.
Se infatti in una rete aziendale tu accedi con il tuo utente di rete, è perchè (probabilmente) questo è attivo e funzionante dentro l'active directory.
Vediamo dunque come effettuare una semplice login in php, ovvero come verificare che la username e la password passate ad pagina web siano valide.


Come collegarsi all'active directory con il php (ldap)


Prima di tutto, per poter connettere il php all'active directory occorre che il protocollo ldap sia attivato.
Ancora una volta dunque, andiamo a controllare il nostro php.ini, o lanciamo il classico phpinfo.
Cercare e scommentare (o aggiungere) la seguente riga:

extension=php_ldap.dll

Poi riavviare il server.

Collegarsi all'active directory con il php (ldap)

Adesso siamo pronti per scrivere un po' di codice php.
Ecco lo script che potete utilizzare per connettersi all'active directori dal php:

<?php
$ldapuser='tua-user-di-rete';
$ldappass='tua-password-di-rete';
$ldapconn=ldap_connect("ip-server") or die("Impossibile connettersi all'LDAP server.");
$ldapbind=ldap_bind($ldapconn, $ldapuser, $ldappass); 
if ($ldapbind) echo "Login effettuato con successo";
else echo "Dati errati";
?>

Questo semplice script, in cui dovrete solo settare l'indirizzo ip del server dell'active directory, la vostra utenza di rete (di default funziona con l'email di solito), e la vostra password, vi consentirà di verificare se l'utente è presente ed attivo in ldap.
Vi basterà dunque adattare questo script in modo che peschi user e password da una form html, ed ecco che avrete creato un'area riservata php a cui avranno accesso solo gli utenti attivi nell'active directory da voi specificata.

Bene, login active directory php: Done!
Buon coding :)

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon