Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2008, 11:35
centrion_75
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Problemas con la autentificación LDAP

Hola a todos,
en la aplicación que estoy desarrollando, a la hora de identificar un usuario vía LDAP me surge el siguiente problema:

Código PHP:
Warningldap_compare() [function.ldap-compare]: CompareNo such attribute in C:xampphtdocsServicioTutoriasLDAPejemplo.php on line 56 
Sin embargo el nombre del atributo es correcto. A continuación detallo el fichero donde esta :

Código PHP:
<?php
// La secuencia básica para trabajar con LDAP es conectar, autentificarse,
// buscar, interpretar el resultado de la búsqueda y cerrar la conexión.

echo "<h3>Prueba de consulta LDAP</h3>";
echo 
"Conectando ...";
$ds=ldap_connect("servidorLDAP");  // Debe ser un servidor LDAP válido!
echo "El resultado de la conexion es ".$ds."<p>";

if (
$ds) { 
    echo 
"Autentificandose  ..."
    
$r=ldap_bind($ds);     // Autentificación anónima, típicamente con
                           // acceso de lectura
    
echo "El resultado de la autentificacion es ".$r."<p>";

    
    
$sr=ldap_search($ds,"ou=personas,o=unirioja.es,dc=unirioja,dc=es""uid=alumno1"); 
    
    if(
$sr==false)
    {
        echo
"Hay algun error</br>";
    } 
    else
    {
        echo 
"El resultado de la busqueda es ".$sr."<p>";
    
        echo 
"El numero de entradas devueltas es ".ldap_count_entries($ds,$sr)."<p>";
    
        echo 
"Recuperando entradas ...<p>";
        
$datosldap ldap_get_entries($ds$sr);
        echo 
"Devueltos datos de ".$datosldap["count"]." entradas:<p>";
        
//ver nombre de los atributos
        
$entrada ldap_first_entry($ds$sr);

        
$atributos ldap_get_attributes($ds$entrada);

        echo 
$atributos["count"]." atributos contenidos en esta entrada:<p>";

        for (
$i=0$i $atributos["count"]; $i++)
            echo 
$atributos[$i]."<br>";
        
        
        
//autentificación usuario

         
$pass="alumno1";
        
$dn $datosldap[$i]["dn"];
        
$r=ldap_compare($ds,$dn,"userPassword"$pass);
        
        if (
$r === -1)
        {
            
$msg "Error datos"//Contraseña incorrecta
        
}
        elseif (
$r === true)
        {
            echo
"Correcto</br>";
            
$datos[0]= $datosldap[$i]["cn"][0];
            
$datos[1]= $datosldap[$i]["givenname"][0];
            
$datos[2]= $datosldap[$i]["sn"][0];
            
$datos[4]= $datosldap[$i]["mail"][0];
        }
    }
    echo 
"Cerrando conexion";
    
ldap_close($ds);

} else {
    echo 
"<h4>Ha sido imposible conectar al servidor LDAP</h4>";
}
?>