L’anticamera del cestino

PHP: autenticazione ldap

Posted by: Max-B on: 1 Marzo 2007

Inauguro con questo breve articolo la sezione dedicata alle funzioni php che utilizzo più di frequente. Premetto che sono un programmatore php autodidatta consapevole dei propri limiti. Gli script che posterò, sono scritti da un dilettante e forse contengono anche degli errori che ignoro…. però funzionano. Se avete dei suggerimenti da darmi per migliorare la stesura saranno più che graditi.

Non sempre per controllare l’accesso degli utenti è possibile utilizzare un database interno al proprio sito. Spesso, nelle infrastrutture che contano molti utenti, questi sono gestiti all’interno di un database ldap. A volte quindi è necessario controllare l’accesso degli utenti del proprio sito utilizzando proprio questi database.

PHP offre funzioni dedicate per svolgere questo delicato compito. Quella che segue è una funzione php che, se invocata con una username e password, permette di verificarle le credenziali su un database ldap. Ovviamente è necessario specificare correttamente i parametri di accesso del proprio server ldap.

function ldap_authenticate($username,$password){
// Cambia i parametri seguenti
$ldaprdn = "uid=$username,ou=people,dc=domain,dc=com";
$ldappass = $password; // Password
if(!$username or !$password) { return false; }
// Connessione al server ldap
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
// Cambia i parametri seguenti
$ldapconn = ldap_connect("ldaps://ldap.server.com")
or die("Non riesco a connettermi al server LDAP.");
if ($ldapconn) {
// binding
$ldapbind = @ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verifica bind
if ($ldapbind) {
return true;
} else {
return false;
}
}
}

Come si può intuire facilmente, se l’autenticazione ha successo la funzione restituisce true, se fallisce restituisce false.
Ulteriori informazioni sono ovviamente reperibili sul sito ufficiale di PHP

2 Risposte a "PHP: autenticazione ldap"

Ciao,
ottima questa funzioncina..
Perdona l’ignoranza ma è possibile interrogare anche un Active directory?

Nello specifico di questa funzione credo non possa funzionare su Active Directory, tuttavia immagino esistano funzioni analoghe anche per AD. Ciao, Max

Lascia una Risposta

Raccolta differenziata di esperienze di dubbia utilità

About

Categorie

Archivio

GNU FDL
Salvo diversa indicazione, il materiale pubblicato su questo sito è rilasciato sotto la licenza GNU FDL.

 

Marzo 2007
L M M G V S D
« Feb   Giu »
 1234
567891011
12131415161718
19202122232425
262728293031