New question

Question:

Date: 07-08-2017 09:33:24 (In Spanish)

Login LDAP: conflictos para conectar con mi base de datos ldap_connect[Resolved]

Buenas tardes, espero puedan ayudarme y darme su aporte, el planteamiento es el siguien, estoy en mi trabajo de practica profesional y mi proyecto se basa en un sistema de gestion de identidad, lo complejo es que el loggion debe validar contra un directorio ldap que ya existe y tiene aprox 13mil registros, ahora bien realicec el archivo de conexion con el ldap y me dice conexion exitosa peeero cuando hago login me da error porque obviamente no esta validando contra el directorio que necesito, aparte una vez logeado debo alimentar otra base de datos sql con logs de sesion del usuario conectado. anexo codigo de conexion con ldap y codigo de validacion espero pueda ayudarme gracias.

Conexión:
<?php
$ldaphost = "ldaps://10.1.192.203/";

// Conexión al servidor LDAP
$ldapconn = ldap_connect($ldaphost);
    if(!$ldapconn){  
        echo "conexion fallida";
                exit();
            }else{
                    echo "conexion Exitosa";
                  }  
?>


Validación usuario:
<?php
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.203'; // nombre del host o servidor
    $ldap['port']              =  389; // puerto del LDAP en el servidor
    $ldap['dn']                = 'uid='.$ldap['user'].'dc=ivss,dc=int,dc=ve'; // modificar respecto a los valores del LDAP
    $ldap['base']              = ' ';
 	
    // match de usuario y password
     $ldap['bind'] = ldap_bind( $ldap['correo'], $ldap['user'], $ldap['pass'] );
     
     
    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();
    } 
		
?>

Tags: Database - LDAP - PHP - PHP Advanced - Question Votes: 1 - Answers: 8 - Views: 17 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 07-08-2017 13:04:08 Hola Dennys
    No he hecho nada con autenticación contra un AD.
    Pero te dejo un link que he visitado alguna vez, donde explican el funcionamiento con codigo fuente.
    Autenticación de usuarios usando PHP y Active Directory de Windows Server

    Espero que te sirva en algo.

    Saludos
      Votes: 2 - Link answer
     
  • Date: 07-08-2017 18:59:13 se nota que eres novato en php pero aqui va este script funciona al 100%

    class loginLDAP {
    	
    	public function new_login($usu,$pass) {
    			if ($usu!='' && $pass!='') {
    	
    			$adServer = "ldap://NOMBRESERVIDOR.NOMBREDOMINIO"; //EJEM srv.contoso.local
    			$ldap = ldap_connect($adServer);
    			$username = $usu;
    			$password = $pass;
    			$ldaprdn = ' ----NOMBREDOMINIO---- '. "\\" . $username;
    	
    			ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
    			ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
    	
    			$bind = @ldap_bind($ldap, $ldaprdn, $password);
    	
    			if ($bind) {
    				@ldap_close($ldap);
    				return true;
    			} else {
    				return false;
    			}
    		} else {
    			return false;
    		}
    	}
    }
    
      Votes: 2 - Link answer
     
  • Date: 09-08-2017 06:36:55 Helian si novato con php y mas con ldap, revisare tú script agradecido de antemano igual notifico si aplica.

    Walter gracias por tu sugerencia he revisado algo de ahi también..igual revisare y notifico si solvento mi situacion
      Votes: 2 - Link answer
     
  • Date: 10-08-2017 06:44:25 helian cox, lamento decirte que no me funcionó tu script ....me da un error en el bind cuando lamo la clase.....buscando halle otro codigo sin ser una clase como el tuyo pero me da el mismo error.ñ..anexo una vez mas el codigo no se si sea el orden de las variables en el bind o si me falte algo...podrias echarle un ojo...gracias


    <?php

    ini_set('display_errors', 1);


    $ldapuser = 'jbarrera'; // el usuario
    $ldappass = '13231933';
    $ldaptree = "DN=ldap,OU=Administradores,OU=Usuarios,OU=Cuentas,DC=ivss,DC=int";

    // Variables del servidor LDAP
    $ldaphost = "10.1.192.37"; // servidor LDAP
    $ldapport = 389; // puerto del servidor LDAP
    // Conexión al servidor LDAP
    $ldapconn = ldap_connect($ldaphost, $ldapport);
    //or die("Could not connect to $ldaphost");

    if ($ldapconn) {
    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass);
    if ($ldapbind) {
    echo "LDAP bind successful...<br /><br />";
      Votes: 0 - Link answer
     
  • Date: 11-08-2017 19:16:11 Hola compañero ese script esta en produccion.. usalo y revisa paso por paso que te devuelven las variables.. var_dump($var) funciona perfecto asi veras donde esta tronando.

    Por cierto la verdad nunca he usado IP para el dominio es mejor el nombre DNS completo
      Votes: 1 - Link answer
     
  • Date: 12-08-2017 03:34:27 Hola Dennys, he leido en una nueva pregunta que has cargado que solucionaste el problema de conexión, si es así se agradece que puedas comentar aquí cual fue la solución del caso y cambies el estado de la pregunta a "resuelta" (observa que en los botones rojos presentes en tu pregunta/primer post hay un botón que dice "CAMBIAR ESTADO->RESUELTA"), muchas gracias.

    Saludos y buen código!
      Votes: 0 - Link answer
     
  • Date: 14-08-2017 05:24:37 Buenas Gracias por su Colaboración la conexion la termine haciendo con este codigo..espero sirva a algun otro que como yo tenia esa duda.

    ini_set('display_errors', 1);


    $ldapuser = ''; // el usuario
    $ldappass = 'XXXXX';//password de usuario
    $ldaptree = "UID=XXX,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX";//arbol de cirectorio del LDAP

    //Variables del servidor LDAP
    $ldaphost = "1XXXX"; // servidor LDAP
    $ldapport = 389; // puerto del servidor LDAP
    // Conexión al servidor LDAP
    $ldapconn = ldap_connect($ldaphost, $ldapport);
    //or die("Could not connect to $ldaphost");

    if ($ldapconn) {
    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaptree, $ldappass);
    if ($ldapbind) {
    echo "LDAP bind successful...<br /><br />";

    $result = ldap_search($ldapconn, $ldaptree, "(CN=*)") or die("Error in search query: " . ldap_error($ldapconn));
    $data = ldap_get_entries($ldapconn, $result);
      Votes: 2 - Link answer
     
  • Date: 03-11-2021 17:21:55 cuando intento hacer la conexión no reconoce el usuario y contraseña, pero sin esos datos si conecta... alguna persona me puede ayudar por favor.   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In