esempio: pear auth con autenticazione su ldap

Ldap, panacea di tutti i mali e spina nel fianco ;-) . Comunque lo ritengo fermamente l'unica soluzione valida per la gestione di contatti e l'autenticazione degli utenti. Tutto il resto è fuffa o esclusivamente un modo per fare meno fatica e raggiungere i risultati velocemente precludendo possibilità e futuri sviluppi per il proprio software.
Vediamo come utilizzare ldap in php sfruttando le classi di pear.
Nella (penosa) documentazione del pacchetto Auth di pear non viene enfatizzato che auth assume che le entries abbiano object class di tipo posix.
| userfilter" | string | "(objectClass=posixAccount)" |
Quindi di default Auth va a filtrare le entry cercando esclusivamente quelle di tipo posix. L'ho potuto capire grazie all'eccellente funzione di debug di ldap da attivare SEMPRE quando si brancola nel buio come in questi casi
Mi baso su questo esempio e scrivo un blocco di codice funzionante da cui trarre spunto. Il file si chiama test.php:
require_once "Auth/Auth.php";
function loginFunction($username = null, $status = null, &$auth = null)
{
/*
* Change the HTML output so that it fits to your
* application. !!!!!!!!!!!!!!!! NOTE the modified fields UID and userPassword !!!!!!!!!!!!!!!!!!!
*/
echo '<form method="post" action="test.php">';
echo '<input type="text" name="uid">';
echo '<input type="password" name="userPassword">';
echo '<input type="submit">';
echo '</form>';
}
$options=array(
'host' => 'spippolo',
'port' => '389',
'version' => 2,
'basedn' => 'ou=utenti,dc=spippolo,dc=2v,dc=ntw',
'userattr' => 'uid','userPassword',
'binddn' => 'cn=admin,dc=spippolo,dc=2v,dc=ntw',
'bindpw' => 'pippo',
'postUsername' => 'uid',
'postPassword' => 'userPassword',
'usernamecol' => 'uid',
'passwordcol' => 'userPassword',
'enableLogging' => 'true',
'cryptType' => 'md5',
"userfilter" => "(objectClass=inetOrgPerson)"
$a1 = new Auth("LDAP", $options, loginFunction);
$a1->start();
if ($a1->checkAuth())
{
echo 'autenticato';
}
else
{
echo 'non autenticato';
} - dam's blog
- 842 reads

Post new comment