In un recente progetto mi è stato chiesto di implementare un portale web con accesso tramite il protocollo Lightweight Directory Access Protocol (LDAP). Ho pensato di condividere il codice e in questo post vedremo come implementare ed utilizzare una form HTML per effettuare l’Autenticazione LDAP con script PHP.
Autenticazione LDAP con script PHP
Implementazione script PHP
Il post ha il solo scopo di mostrare come effettuare un’autenticazione LDPA con credenziali inserite in una form di login. Se volete più informazioni relative al protocollo LDAP vi rimando a questo articolo su Wikipedia e a questi eBook su Amazon.
Ora veniamo allo script. Ho racchiuso tutto il codice, sia la form HTML che il codice PHP, in un’unica pagina lasciando solo la parte relativa alla gestione dell’autenticazione tramite LDAP:
PHP mette a disposizione diverse funzioni che ci permettono di gestire l’autenticazione tramite LDAP. Il codice è abbastanza commentato.
Diamo uno sguardo alle funzioni utilizzate
ldap_connect(host, port): non apre una connessione vera e propria ma controlla se i parametri inseriti (host e porta) sono validi per una connessione con un server LDAP
ldap_set_option(ldapConnection,option,newValue): utilizzata per settare alcune opzioni come la versione del protocollo (LDAP_OPT_PROTOCOL_VERSION) o come eseguire i riferimento ricevuti dal server (LDAP_OPT_REFERRALS)
ldap_bind(ldapConnection, ldapUser . ldapDomain, ldapPassword):
viene richiamata una volta configurati i parametri di connessione al server LDAP e recuperate le credenziali inserite nella Form di login. Si occupa di effettuare la connessione vera e propria con il server LDAP.
ldap_close(ldapConnection): viene richiamata per chiudere la connessione LDAP
Autenticazione LDAP con script PHP
Esecuzione script PHP
Lo script che abbiamo appena visto è stato testato su un server LAMP (con sistema operativo Linux Ubuntu).
All’avvio della pagina PHP viene mostrata una finestra di login.
Se proviamo ad inserire le credenziali relative ad un utente valido, lo script ci restituisce il messaggio di avvenuta autenticazione
Se proviamo ad effettuare il login con le credenziali di un utente non valido, lo script ci restituisce un messaggio di errore
Potete scaricare lo script direttamente da GitHub a questo link.
A presto 😉