New question

Question:

Date: 11-08-2017 05:15:01 (In Spanish)

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.
Tags: $_POST - $_SESSION - LDAP - PHP - Question - Session 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