[TYPO3-UG Italy] accesso ldap o compliant

Francesco Pessina typo3news at yahoo.it
Wed Sep 27 14:50:32 CEST 2006


Ciao a tutti,

Scusate la latitanza ma ho dovuto fare modifiche radicali al mio web e cio' mi ha rubato molto tempo...

Il problema dell' "unable to bind the server" e' un problema tipico che non sempre riguarda la 
estensione eu_ldap ma PHP con LDAP. Quindi consiglierei i seguenti passi:
1) verificare che il firewall di 2003 apra la porta 389 in ingresso, che non ci siano limitazioni su 
tale ambito e che, se presente e configurato, l'SCW non blocchi il servizio LDAP dal punto di vista 
network
2) provare con del codice PHP semplice semplice a fare una interrogazione sul proprio LDAP se la 
comunicazione LDAP<->PHP funzia o meno; a fine messaggio vi allego un test di ldap in PHP che uso 
abitualmente quando ho problemi :-)
3) io ho avuto difficolta' con eu_ldap nel caso di autenticazione nella forma 
nome.dominio\nome.utente; ho cambiato la modalita' in nome.utente at nome.dominio e tutto funzia alla 
grande.
4) anche se in tedesco, consiglio la "lettura" di questo tutorial rilasciato dallo stesso autore che 
ha fatto l'estensione (le figure e le indicazioni degli step sono cumunque comprensibili):
http://www.entios.de/uploads/media/t3n_01_ldap.pdf

Per il resto concordo anch'io, l'uso dei filtri e' l'ultima cosa da implementare, prima verificare 
che si abbia il dialogo PHP<->LDAP.

Saluti, Francesco


===================== Salvare in LDAP.php ============================
<?php
// ritorna l'elenco degli utenti AD con alcune loro info.

$ldap_host="xxx.xxx.xxx.xxx"; // l'IP del server AD, non scomodiamo il DNS locale..
$ldap_user="nome.utente at nome.dominio"; // utente di AD con diritto di lettura (users)
$ldap_pass="password_utente"; // la password di "nome.utente"
$ldap_base="DC=nome,DC=dominio"; // corrisponde a "nome.dominio"
$ldap_filter="(&(objectClass=user)(objectCategory=person)(samaccountname=*))";
$ldap_object=array('displayname','mail','givenname','cn');

echo "<h3>LDAP query test</h3>";
echo "Connecting to ".$ldap_host."...";
$ldap_conn=ldap_connect($ldap_host) or die("Could not connect to LDAP server.");
echo "connect result is [" . $ldap_conn . "]<br />";

if ($ldap_conn) {
	if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
	   echo "Using LDAPv3<br />";
	} else {
	   echo "Failed to set protocol version to 3<br />";
	}
	echo "Binding ...";
	$ldap_bind=ldap_bind($ldap_conn,$ldap_user, $ldap_pass);    // this is an "anonymous" bind, typically
	
	echo "Bind result is [" . $ldap_bind ."]. ";
	if ($ldap_bind) {
	   echo "LDAP bind successful...<br />";
	
	   echo "Searching for [".$ldap_filter."] ...<br />";
	
	   $ldap_result=ldap_search($ldap_conn, $ldap_base, $ldap_filter);
	   echo "Search result is [" . $ldap_result . "]<br />";
	
	   echo "Number of entires returned is [" . ldap_count_entries($ldap_conn, $ldap_result) . "].<br />";
	   $info = ldap_get_entries($ldap_conn, $ldap_result);
	
	   echo "Data for [" . $info["count"] . "] items returned:<p>";
	
	   for ($i=0; $i<$info["count"]; $i++) {
	   		print_r($info[$i]);
	       echo "dn is: " . $info[$i]["dn"] . "<br />";
	       echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
	       echo "first group entry is: " . $info[$i]["ou"][0] . "<br />";
	       echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
	   }
	} else {
	   echo "LDAP bind failed...<br />";
	}
	
	
	echo "Closing connection";
	ldap_close($ldap_conn);

} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}
?>
======================================================================


Mauro Lorenzutti ha scritto:
>> francamente non sono esperto di queste cose, avete da suggerirmi un filtro
>> basato solo sull'account? per eseguire un prova!
> 
> In rete puoi trovare un sacco di tutorial su LDAP, per iniziare puoi
> dare un'occhiata a:
> http://www.microsoft.com/italy/technet/prodtechnol/exchange/2003/insider/ldapquery.mspx
> 
> Saluti,
>  Mauro Lorenzutti
> 
> 
> e-mail:  mauro.lorenzutti at webformat.com
> 
> ---------------------------------------------------------
> WEBFORMAT srl | Corte Europa, 12 | I-33097 SPILIMBERGO PN
>      Tel +39-0427-926.389  --  Fax +39-0427-927.653
>        info at webformat.com  --  www.webformat.com
> ---------------------------------------------------------
> 



More information about the TYPO3-UG-italy mailing list