Validar SIU-Diaguitas con ldap (SOLUCIONADO)

Estimados, tenemos instalada la versión 1.14.3 de SIU-Diaguita.
En el archivo “extension_usuario” tengo estos dos métodos configurados de la siguiente manera, y funcionando.
Además, desde el toba_editor, se debe dejar configurado en “Conf./Propiedades/Usuario” como en la imagen que adjunto.

	static function autenticar($id_usuario, $clave, $datos_iniciales=null, $usar_log=true)
	{
		$datos_usuario = toba::instancia()->get_info_autenticacion($id_usuario);
		if ( empty($datos_usuario) ) {
			$error = "El usuario '$id_usuario' no existe";
			if ($usar_log) {
				toba::logger()->error($error, 'toba');
			}
			throw new toba_error_usuario($error);
			return false;
		} else {
			
			//--- Autentificación vía LDAP.		
			if(!(self::autenticar_ldap($id_usuario, $clave, $datos_iniciales))) {
				$error = "El usuario '$id_usuario' ingreso una clave incorrecta";
				if ($usar_log) {
					toba::logger()->error($error, 'toba');
				}
				throw new toba_error_usuario($error);
				return false;
			}
			
			//Control de que el área del usuario tenga asociado una oficina de contratación o que el usuario exista.
			$temp_usuario = dao_consultas::get_datos_usuario(array('id_toba'=>$id_usuario,'count' =>true));
			if($temp_usuario[0]['count'] ==0)
			{
				$error = "El usuario '$id_usuario' no existe o se encuentra inhabilitado, por favor contactese con el administrador.";
				if ($usar_log) {
					toba::logger()->error($error, 'toba');
				}
				throw new toba_error_usuario($error);
				return false;
			}
			
		
			//Control de que el usuario tenga asociado alguna área.
			$temp_area = dao_consultas::get_usuarios_areas(array('id_toba'=>$id_usuario,'count' =>true));
			if($temp_area[0]['count'] ==0)
			{
				$error = "El usuario '$id_usuario' no tiene asociado un área, por favor contactese con el administrador";
				if ($usar_log) {
					toba::logger()->error($error, 'toba');
				}
				throw new toba_error_usuario($error);
				return false;
			}

		}
		return true;
	}
	
	static function autenticar_ldap($id_usuario, $clave, $datos_iniciales=null)
	{
		if (! extension_loaded('ldap')) {
			throw new toba_error("[Autenticación LDAP] no se encuentra habilitada la extensión LDAP");
		}

		//$ldap_server = ldap_connect(TU_SERVIDOR.edu.ar',xxx);// <------servidor,puerto
		$ldap_server = ldap_connect('xxx.xxx.xxx.xxx',xxx);// <------ IP,puerto
		ldap_set_option($ldap_server, LDAP_OPT_PROTOCOL_VERSION, 3);

		$usuario_cn = "uid=$id_usuario,ou=people, dc=TU_DOMINIO,dc=gov,dc=ar";
		$result = ldap_bind($ldap_server, $usuario_cn, $clave);

		if ($result == false) {
			toba::logger()->error("[Autenticación LDAP] Usuario/Contraseña incorrecta: ".ldap_error($conexion));
			return false;
		}

		ldap_close($ldap_server);
		toba::logger()->debug("[Autenticación LDAP] OK");

		return true;
	}


Espero a alguien le sea de utilidad, Saludos!


extension_usuario.jpg

extension_usuario.png