Nueva pregunta

Pregunta:

Fecha: 11-08-2017 05:15:01 (En Español)

Ayuda con validación LDAP[No resuelta]

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.
Etiquetas: $_POST - $_SESSION - LDAP - PHP - Pregunta - Sesión Votos: 0 - Respuestas: 5 - Vistas: 10 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 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   Votos: 0 - Link respuesta
     
  • Fecha: 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....   Votos: 0 - Link respuesta
     
  • Fecha: 16-08-2017 05:44:26 coloca el codigo de el archivo conect.php para ayudarte..

    no pongas IP ni dominios reales..
      Votos: 0 - Link respuesta
     
  • Fecha: 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);
    
      Votos: 0 - Link respuesta
     
  • Fecha: 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
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com