Location: PHPKode > scripts > ldap_class > ldap_class/ldap.class.php
<?php

	// clase ldap
	// hide@address.com
	// La Habana, Cuba. 2007

class LDAP
{
	  var $servidor_ldap;	
	  var $dn_ldap; 
	  var $clave_ldap;
	  var $conexion;
	  
	  var $CONTEXTO;
	  var $ATRIBUTOS_USUARIO_LDAP;
	  var $DN_NOMBRE_USUARIO_LDAP;
	  var $DN_APELLIDO_USUARIO_LDAP;
	  var $DN_CORREO_USUARIO_LDAP;
	  var $DN_OCUPACION_USUARIO_LDAP;
	  var $DN_FACULTAD;
	  var $DATOS_USUARIO_LDAP = array();

	function LDAP()
	{
	  // modificar estos datos de config segĂșn su dominio
	  $this->servidor_ldap = 'my_ldap_server';
	  $this->dn_ldap = 'cn=ad search, ou=Systems, ou=UCI Domain Impersonals, dc=uci, dc=cu';
	  $this->clave_ldap = 'my_ldap_clave';
	  $this->CONTEXTO = 'DC=uci,DC=cu';
	  $this->ATRIBUTOS_USUARIO_LDAP = 'samaccountname';
	  $this->DN_NOMBRE_USUARIO_LDAP = 'givenname';
	  $this->DN_APELLIDO_USUARIO_LDAP = 'sn';
	  $this->DN_CORREO_USUARIO_LDAP = 'mail';
	  $this->DN_OCUPACION_USUARIO_LDAP = 'title';
	  $this->DN_FACULTAD ='department';
	  
	  $this->DATOS_USUARIO_LDAP = 
	  			array($this->DN_NOMBRE_USUARIO_LDAP, 
				  	  $this->DN_APELLIDO_USUARIO_LDAP, 
					  $this->DN_CORREO_USUARIO_LDAP, 
					  $this->DN_OCUPACION_USUARIO_LDAP, 
					  $this->DN_FACULTAD
	    			  );
	  $this->Conectar();
	}
	
	function Conectar()
	{
	  $this->conexion = ldap_connect($this->servidor_ldap); 
	  ldap_set_option( $this->conexion, LDAP_OPT_PROTOCOL_VERSION, 3 );
	  ldap_set_option($this->conexion, LDAP_OPT_REFERRALS, 0 );
	  $resultado = ldap_bind($this->conexion, $this->dn_ldap, $this->clave_ldap);
	}
	
	function Obtener_Resultado($usuario)
	{
	  $resultado_busqueda = ldap_search($this->conexion, $this->CONTEXTO,  "$this->ATRIBUTOS_USUARIO_LDAP=$usuario", $this->DATOS_USUARIO_LDAP);  
	  $entrada = ldap_first_entry($this->conexion, $resultado_busqueda);
	  return $entrada; 
	}  
	
	function Obtener_Datos_Usuario($usuario)
	{
	  $USUARIO_DOMINIO = $usuario;	
	  $ent = $this->Obtener_Resultado($USUARIO_DOMINIO);	
	  $datos = array();
	  if($ent)
	  {
	  	$dn_usuario = ldap_get_dn($this->conexion, $ent);	
	    foreach($this->DATOS_USUARIO_LDAP as $clave => $value)
	    {
	      $valores_atributos = ldap_get_values($this->conexion, $ent, $value);
		  $datos[] = $valores_atributos[0];
	    }
	  }   
	 return $datos; 
	}
	
	function Verificar_Datos($usuario, $contrasena)
	{
	  $USUARIO_DOMINIO = $usuario;	
	  $CLAVE_USUARIO_DOMINIO = $contrasena;
	  
	  if (!is_null($USUARIO_DOMINIO) && $CLAVE_USUARIO_DOMINIO != "" )
	  {
	  	$ent = $this->Obtener_Resultado($USUARIO_DOMINIO);
		  if($ent)
		  {
		    $dn_usuario = ldap_get_dn($this->conexion, $ent);
			$acceso = ldap_bind($this->conexion, $dn_usuario, $CLAVE_USUARIO_DOMINIO);
		    if($acceso)
		      return true;
		  }
	  }
	  else return false;
	}
	
		
}

?>
Return current item: ldap_class