Question:
Date: 11-08-2017 05:15:01
(In Spanish)
Anexo codigo de validar:
Agradezco si puede orientarme. Votes: 0 - Answers: 5 - Views: 10 Share on: Google Facebook Twitter LinkedIn Link
Ayuda con validación LDAP[Unresolved]
Buenos dias, espero se encuentren bien, el caso es el siguiente: en una pregunta anterior pedí asesoria para conectarme a un directorio LDAP, despues de buscar y buscar logre la conexión...ahora bien, para validar los usuarios en el login incluyo el conect.php que hice aparte pero no me valida entra directo a conect.php podran orientarme al respecto?Anexo codigo de validar:
include('conect.php'); // variables de autenticacion y LDAP $ldap['correo'] = $_POST["correo"]; $ldap['user'] = $_POST["usuario"]; $ldap['pass'] = $_POST["clave"]; $ldap['host'] = '10.1.192.37'; // nombre del host o servidor $ldap['port'] = 389; // puerto del LDAP en el servidor $ldap['dn'] = "UID='user',OU=Administradores,OU=Usuarios,OU=Cuentas,DC=ivss,DC=int"; $ldap['base'] = ' '; // match de usuario y password $ldap['bind'] = ldap_bind( $ldap['correo'], $ldap['user'], $ldap['pass'] ); //var_dump($ldap); if ($ldap['bind']){ session_start(); session_cache_limiter('nocache,private'); $_SESSION['correo']=$_POST['correo']; $_SESSION['usuario']=$_POST["usuario"]; $_SESSION['clave']=$_POST["clave"]; $pag=$_SERVER['PHP_SELF']; echo "<head><meta http-equiv=\"refresh\" content=\"0; url=menu_usuario.php\"></head>"; } else{ echo "LDAP bind failed..."; //print "<body onload=\"window.location='index.php?error=Acceso denegado';\">"; //print "</body>"; exit(); }
Agradezco si puede orientarme. Votes: 0 - Answers: 5 - Views: 10 Share on: Google Facebook Twitter LinkedIn Link
Answers:
-
Date: 11-08-2017 19:26:37 Hola compañero otra vez yo.. no veo el ldap_connect y si esta en include('conect.php'); creo que no esta en orden el script Votes: 0 - Link answer
-
Date: 12-08-2017 03:17:11 Hola Helian, gracias por atender mis inquietudes, en efecto el conect esta en el include ya probandolo el hace la conexión entonces no se si como dices es el orden del bind o algo que se me pasa porque no me valida.... Votes: 0 - Link answer
-
Date: 16-08-2017 05:44:26 coloca el codigo de el archivo conect.php para ayudarte..
no pongas IP ni dominios reales.. Votes: 0 - Link answer -
Date: 16-08-2017 06:43:41 Hola Luis, agradecido
este es el conect, el punto es que me dice que conecto pero no me permite validar los usuarios que hagan login y son registros que ya existen.
<?php ini_set('display_errors', 1); $ldaptree = "OU=xxxx,OU=xxx,OU=xxx,DC=xxx,DC=xxx"; $ds=ldap_connect("aqui coloco ip"); //or die("Could not connect to $ldaphost"); if ($ds) { // binding to ldap server $ldapbind = ldap_bind($ds); if ($ldapbind) { echo "LDAP bind successful...<br /><br />"; $result = ldap_search($ds, $ldaptree, "(CN=*)") or die("Error in search query: " . ldap_error($ldapconn)); $data = ldap_get_entries($ds, $result);
Votes: 0 - Link answer -
Date: 16-08-2017 08:06:09 yo lo haria de esta forma :
error_reporting(1); $user = isset($_POST['username']) ? $_POST['username']: null; $pass = isset($_POST['clave']) ? $_POST['clave']: null; $correo = isset($_POST['correo']) ? $_POST['correo']: null; if($user == null){ echo 'Usuario es requerido'; exit; } if($pass == null){ echo 'Indique su clave'; exit; } function conectar_ldap($user,$pass){ $host = '111.111.111.111'; $puerto = ''; $alias= "@tudominio.com.ve"; $ldap_con = ldap_connect($host) or die("No es posible conectar con el Servidor LDAP."); ldap_set_option($ldap_con, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldap_con, LDAP_OPT_REFERRALS,0); $ldap_dn = $user.$alias; // es lo mismo que la direccion de correo. $bind = ldap_bind($ldap_con, $ldap_dn, $pass); if ($bind != true){ ldap_close($ldap_con); echo 'Clave o Usuario invalido'; exit; }else{ $base_dn = "OU=DATA,DC=tudominio,DC=com,DC=ve"; $filtro = "(sAMAccountName=$user)"; // en caso de que hagas la autenticación por corrreo el fitro seria "(userPrincipalName=$correo)" $attributos = array("displayname", "memberOf", "userPrincipalName", "sAMAccountName"); //aqui indicas cuales son lo atributos que quieres obtener. $search = ldap_search($ldap_con, $base_dn, $filtro, $attributos ); $entries = ldap_get_entries($ldap_con, $search); ldap_close($ldap_con); $dn = $entries[0]['dn']; $nombre = $entries[0]['displayname'][0]; $correo = $entries[0]['userprincipalname'][0]; $usuario_red = $entries[0]['samaccountname'][0]; session_start(); $_SESSION["nombre"] = $nombre; $_SESSION["correo"] = $correo; $_SESSION["user"] = $usuario_red; $_SESSION["stat"] = true; echo "<script type='text/javascript'>window.location='./home.php'</script>"; } } conectar_ldap($user,$pass);
tambien hay otras maneras de hacer las busquedas en el Ldap Votes: 0 - Link answer
To actively participate in the community first must authenticate, enter the system.Sign In