Foros del Web » Programando para Internet » PHP »

usar ldap_bind en PHP para autenticar al usuario

Estas en el tema de usar ldap_bind en PHP para autenticar al usuario en el foro de PHP en Foros del Web. Hola a todos… La situación q tengo es la siguiente…. Tengo un servidor LDAP para autentificar al usuario, el problema se presenta cuando trato de ...
  #1 (permalink)  
Antiguo 15/10/2006, 10:31
 
Fecha de Ingreso: octubre-2005
Mensajes: 69
Antigüedad: 18 años, 5 meses
Puntos: 0
Exclamación usar ldap_bind en PHP para autenticar al usuario

Hola a todos…

La situación q tengo es la siguiente….

Tengo un servidor LDAP para autentificar al usuario, el problema se presenta cuando trato de autenticar en un directorio LDAP.

El código que estoy haciendo como prueba es:
NOTA: el password esta cifrado con SSHA.
Código PHP:
<?
$host       
"URL_SERVIDOR_LDAP";
$puerto     389;

$conex=ldap_connect($host,$puerto) or die ("No ha sido posible conectarse al servidor");

$admin="uid=login_usuario, ou=people, dc=institucion, dc=gob, dc=ve";
$passwd='XXXXX';
    

// Generate SSHA hash
mt_srand((double)microtime()*1000000);
$salt pack("CCCC"mt_rand(), mt_rand(), mt_rand(), mt_rand());
$hash "{SSHA}" base64_encode(pack("H*"sha1($password $salt)) . $salt);

if (
ldap_set_option($conexLDAP_OPT_PROTOCOL_VERSION3)) {
   echo 
"<br>Using LDAPv3";
} else {
   echo 
"<br>Failed to set protocol version to 3";
}

if (
$conex) {
   
// bind with appropriate dn to give update access
   
$r=ldap_bind($conex$admin$hash);
   
   if (
$r)
       {echo 
"<br>Congratulations! $username is authenticated.";}
   else
       {echo 
"<br>Nice try, kid. Better luck next time!";}


   
ldap_close($conex);
} else {
   echo 
"Unable to connect to LDAP server"
}

?>
Ahora bien.. cuando realiza la funcion (ldap_bind) sale el siguiente error:
Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Invalid credentials in C:\Archivos de programa\xampp\htdocs\prueba_ldap.php on line 24

Estuve averiguando por el Internet y allí leí que se debe a un error en el usuario o password, mi pregunta es q si se coloca así el usuario??... el usuario lo tome cuando entro al servidor ldap a través de la Web.

Muchas gracias
__________________
Ana Martins
  #2 (permalink)  
Antiguo 24/10/2006, 08:04
 
Fecha de Ingreso: octubre-2005
Mensajes: 69
Antigüedad: 18 años, 5 meses
Puntos: 0
Sonrisa

Hola a todos...

Llegue a la solicion de mi problema.. por lo que queda asi....

Código PHP:
<?
$host      
"URL_host_LDAP";
$puerto   389;

$conex ldap_connect($host,$puerto) or die ("No ha sido posible conectarse al servidor");

echo 
"<br>conexion: ".$conex;

$admin="uid=usuario, ou=people, dc=grupo, dc=com";
$passwd='passw_text_claro';

if (
ldap_set_option($conexLDAP_OPT_PROTOCOL_VERSION3)) {
    echo 
"<br>Using LDAPv3";
} else {
   echo 
"<br>Failed to set protocol version to 3";
}

if (
$conex) {
   
// bind with appropriate dn to give update access
   
$r=ldap_bind($conex$admin$passwd);
   
   if (
$r)
       {echo 
"<br>Congratulations! $admin is authenticated.";}
   else
       {echo 
"<br>Nice try, kid. Better luck next time!";}

   
ldap_close($conex);
} else {
   echo 
"<br>Unable to connect to LDAP server"
}

?>
Antes de hacer el ldap_bind hay que hacer el ldap_set_option para setearle la version a la variable $conex. Y no hay que encriptar el password para la autenticacion.

Saludos,
__________________
Ana Martins
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 12:26.