jun
28
2012

Consultar usuario en OpenLdap desde PHP

Hola hoy os comento, tengo una aplicación web y debe chequear si el usuario y la contraseña son correctos, para ello tengo esta pagina que me revisa estos datos y si son correctos me envia a la pagina de control y si no me envia a el inicio con un error de acceso.

 

<?php
$ldap['user']              = $_POST["usuario"];
$ldap['pass']              = $_POST["clave"];
if ($ldap['user']==NULL OR $ldap['pass']==NULL) print "<body onload=\"window.location='index.php?error=Acceso denegado';\">";
error_reporting(0);
// ejemplo de autenticacióld
$ldaprdn  = 'cn=Manager,dc=FresyMetal,dc=es';
$ldappass ='contraseña';

// conexiól servidor LDAP
$ds = ldap_connect("192.168.0.5")
or die("No puede conectar a LDAP server.");

if ($ds) {

// realizando la autenticació
$ldapbind = ldap_bind($ds, $ldaprdn, $ldappass);

// verificacióel enlace
if ($ldapbind) {
echo "LDAP Bien.";
$sr=ldap_search($ds,"ou=usuarios,dc=FresyMetal,dc=es", "cn=". $ldap['user']."");

echo "El resultado de la busqueda es ".$sr."";
echo "<br>";
echo "El numero de entradas devueltas es ".ldap_count_entries($ds,$sr)."";
echo "<br>";
echo "Recuperando entradas ...<br>";
$info = ldap_get_entries($ds, $sr);
echo "Devueltos datos de ".$info["count"]." entradas:";
echo "<br>";
for ($i=0; $i<$info["count"]; $i++) {
echo "dn es: ". $info[$i]["dn"] ."";
echo "<br>La primera entrada cn es: ". $info[$i]["cn"][0] ."";
echo "<br>La primera entrada email es: ". $info[$i]["mail"][0] ."";
$perra=$info[$i]["mail"][0];
echo "<br>". $info[$i]["mail"][0] ."";
echo "<br>La contrasena es: ";
echo $info[$i]["userpassword"][0] ."";
$bu=$info[$i]["cn"][0];
$bp=$info[$i]["userpassword"][0];
}
if ($bp==$ldap['pass'] && $bu==$ldap['user']){
session_cache_expire(60);
session_start();
session_cache_limiter('nocache,private');
$_SESSION['usuario']=$_POST["usuario"];
$_SESSION['clave']=$_POST["clave"];
$_SESSION['mail']=$perra;
$_SESSION['rol']=$x;
$_SESSION['usuario_fecha']=date("Y-n-j H:i:s");
$pag=$_server['PHP_SELF'];
echo "<head><meta http-equiv=\"refresh\"content=\"0; url=panel.php\"></head>";

}
else{
echo "LDAP bind falla...";
print "<body onload=\"window.location='index.php?error=Acceso denegado';\">";
print "</body>";
ldap_close($ds);
exit();

}

} else {
echo "LDAP bind failed...";
}

}

?>

un saludo

Related Posts

Enlace corto

About the Author:

Leave a comment

Contador