Autor Tema: Autentificación con LDAP  (Leído 9028 veces)

0 Usuarios y 1 Visitante están viendo este tema.

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Autentificación con LDAP
« on: Febrero 15, 2013, 04:24:27 pm »
Buenos días,
Estamos trabajando con toba 2.3 y queremos realizar nuestra autentificación mediante LDAP.
Por lo visto, vi que toba tiene incorporada una clase de autentificación con LDAP, pero no  encontré ninguna documentación al respecto.
Me gustaría saber como configurar el LDAP y además saber como relacionar los usuarios de LDAP con los del Toba por el tema de los permisos que debe tener cada usuario.
Desde ya, muchas gracias!

smarconi

  • Visitante
Re:Autentificación con LDAP
« Respuesta #1 on: Febrero 18, 2013, 03:57:18 pm »
Hola. Es verdad, quedo bastante escondido.

Primero, si no lo tenes, hay que agregar este archivo en la carpeta instalacion/ldap.ini
http://toba.siu.edu.ar/trac/toba/browser/trunk_versiones/2.3/php/modelo/var/ldap.ini
Descomentarlo y agregar las configuraciones necesarias. El "dn" es el path a seguir en el arbol ldap para encontrarse con el listado de usuario

Luego hay que editar el archivo instalacion/instalacion.ini y agregar o modificar la siguiente linea

autenticacion = ldap

Finalmente hay que asegurarse tener la operación de login actualizada. Si el proyecto se creó en la version 2.3 de toba, ya esta actualizado, sino ejecutar:
Código: [Seleccionar]
toba proyecto actualizar_login -p PROYECTOEsto va a generar una nueva operación de login (que lee estas configuraciones) y dejara la anterior intacta, por si tiene modificaciones que quieras portar a la nueva operación de login. Esto es así porque la operación del login es propia del proyecto, no es de toba


mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Re:Autentificación con LDAP
« Respuesta #2 on: Febrero 18, 2013, 04:03:05 pm »
Realicé los pasos mecionados, y tras algunas modificaciones de la clase de ldap funcionó correctamente. Muchas gracias  Sebastián!

smarconi

  • Visitante
Re:Autentificación con LDAP
« Respuesta #3 on: Febrero 18, 2013, 04:55:16 pm »
Genial! Podrias compartir las modificaciones? Asi lo podemos agregar como parámetros en futuras versiones

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Re:Autentificación con LDAP
« Respuesta #4 on: Febrero 18, 2013, 05:17:39 pm »
Sí, por supuesto!
Lo primero fue corregir el constructor porque no levantaba bien el ldap.ini, estaba "basicos" por "basicas". También los valores de los parámetros al no estar con " " tenía problemas con el parseo.
Fuera de esas dos cosas, en nuestro caso lo que agregué fueron los siguientes parámetros en el ldap.ini:
Código: [Seleccionar]
[basicas]
servidor = "******"
bind_dn = "*****"
bind_pass = "*****"
dn = "*****"
filter = "(mail=%s)"

Y en correspondencia agregué los siguientes atributos a la clase toba_autentificacion_ldap (con sus correspondientes seteos en el constructor):

Código: [Seleccionar]
protected $server;
protected $dn;
protected $bind_dn;
protected $bind_pass;
protected $filter;

Y en la función autentificar  se hicieron los siguientes cambios:
Código: [Seleccionar]
$bind = @ldap_bind($conexion, $this->bind_dn, $this->bind_pass);Esto es básicamente porque para poder conectarse al LDAP se necesita un usuario y contraseña
Código: [Seleccionar]
$res_id = @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario));Y por último, dejé un filter parametrizable en el ldap.ini, en nuestro caso valida contra el atributo mail

Les comento que aún así, estamos buscando una solución para el login único, ya que seguimos agregando nuevas aplicaciones en toba, y los usuarios tienen que acceder a muchas URLs distintas y loguearse varias veces. Algo que venimos pensando es una integración con CAS. Pero bueno, próximamente armaremos un post con estas dudas más especificas.
Saludos!


jorozco

  • Hero Member
  • *****
  • Mensajes: 917
    • Ver Perfil
    • Email
  • Institución: Universidad Catòlica de Manizales
  • Nombre y apellido: Jhon Jairo Orozco D.
  • Sistema: Toba
Re:Autentificación con LDAP
« Respuesta #5 on: Febrero 21, 2013, 10:16:45 am »
Hola Pablo, disculpa la curiosidad en que consite  lo del LDAP ?

Saludos y gracias

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Re:Autentificación con LDAP
« Respuesta #6 on: Febrero 21, 2013, 10:23:25 am »
Qué tal? Mirá LDAP es una estructura en árbol para guardar información de diverso tipo. Se usa generalmente para guardar información de usuarios. De modo que se podría pensar como una base de datos que contiene información de nombres de usuario, contraseñas y permisos. Y la gracia del LDAP es que diferentes aplicaciones consultan al mismo, entonces lo que logras es que el usuario final solo tenga que recordar un solo par usuario/contraseña para poder ingresar a distintos sistemas. Saludos!

jorozco

  • Hero Member
  • *****
  • Mensajes: 917
    • Ver Perfil
    • Email
  • Institución: Universidad Catòlica de Manizales
  • Nombre y apellido: Jhon Jairo Orozco D.
  • Sistema: Toba
Re:Autentificación con LDAP
« Respuesta #7 on: Febrero 21, 2013, 11:24:54 am »
Pero sobre el acceso a los diferentes sistemas, deben estar desarrollados en el framework de toba ?

Me confusión es porque toba_usuarios, hace este proceso, de acceder a diferentes proyectos con el mismo login.

Gracias.

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Re:Autentificación con LDAP
« Respuesta #8 on: Febrero 21, 2013, 11:33:09 am »
Pasa que por como venimos manejando nuestras puestas en producción, por diferentes razones, tenemos una base Toba por cada proyecto. De modo, que para cada proyecto está replicado el usuario.
El LDAP funciona completamente independiente del Toba, es más lo utilizamos para otros sistemas que no están hechos con Toba.
La idea es que en vez de que Toba autentifique con la contraseña que tiene guardada en su base, lo haga con algo que está afuera, que es el LDAP.

jorozco

  • Hero Member
  • *****
  • Mensajes: 917
    • Ver Perfil
    • Email
  • Institución: Universidad Catòlica de Manizales
  • Nombre y apellido: Jhon Jairo Orozco D.
  • Sistema: Toba
Re:Autentificación con LDAP
« Respuesta #9 on: Febrero 21, 2013, 11:45:55 am »
Pablo, mil gracias por tu tiempo, creo que inicio el proceso de investigación, para implementarlo en mi empresa.

Buen día

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Re:Autentificación con LDAP
« Respuesta #10 on: Febrero 21, 2013, 12:18:22 pm »
De nada! No dudes en consultarme si tenes alguna duda, veo como te puedo darte una mano, saludos!

obelgran

  • Full Member
  • ***
  • Mensajes: 172
    • Ver Perfil
  • Institución: Universidad Nacional de Rosario
  • Nombre y apellido: Oscar Rafael Belgrano
  • Sistema: Siu-Toba
  • Teléfono laboral: (0341) 4201245
  • Utilizo algun sistéma del SIU: Sí
Re:Autentificación con LDAP
« Respuesta #11 on: Octubre 23, 2013, 11:55:47 am »
Hola Pablo!

Te estás logueando con la operación de loguin de toba ??
Porque no puedo hacerlo, cambié los parametros que mencionas pero no llama a toba_autenticacion_ldap.php, entra por la autenticacion de toba...

Gracias
Oscar
 

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Re:Autentificación con LDAP
« Respuesta #12 on: Octubre 23, 2013, 12:56:44 pm »
Esto sucede porque levanta el instalacion.ini y lo guarda en sesión de modo que por más que lo modifiques te sigue cargando autenticación toba. Fijate de volver a iniciar sesión o directamente borra la variable con un:
unset($_SESSION[TOBA_DIR]['instalacion']);

Saludos!

obelgran

  • Full Member
  • ***
  • Mensajes: 172
    • Ver Perfil
  • Institución: Universidad Nacional de Rosario
  • Nombre y apellido: Oscar Rafael Belgrano
  • Sistema: Siu-Toba
  • Teléfono laboral: (0341) 4201245
  • Utilizo algun sistéma del SIU: Sí
Re:Autentificación con LDAP
« Respuesta #13 on: Octubre 24, 2013, 11:53:42 am »
Pablo gracias por la respuesta pero no me dio resultado.

Agregué mensajes en los metodos de la clase toba_autenticacion_ldap.php y noté que si bien corre el __construct, cuando invoca el método autenticar, ejecuta otro método, el de la clase de toba_autenticacion_basica supongo...??

Por otro lado me gustaría saber:
  • Si para loguear con ldap usaste la extensión del nucleo y extendiste la clase contexto de ejecución?.
  • Probasete el la renovación de contraseñas vencidas ?
Bueno por ahora eso, si me podés contestar me orientaría mucho!!



Gracias
Oscar

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Re:Autentificación con LDAP
« Respuesta #14 on: Octubre 24, 2013, 12:12:28 pm »
Oscar, tiene que arrancar. Vamos por partes:
1. Modificar el instalacion.ini y poner autenticación ldap
2. Agregar un unset($_SESSION[TOBA_DIR]['instalacion']);. Esto yo lo suelo poner en $toba_dir/php/nucleo/lib/toba_manejador_sesiones.php al comienzo de la función get_autenticacion
3. En este punto si no te está funcionando te recomiendo fuertemente que hagas un debbugeo. La clase que tendrías que estar siguiendo especificamente para ver si funciona el logueo es la que menciono arriba toba_manejador_sesiones. Deberías arrancar a debuggear por la función login y ver si efectivamente toba::instalacion()->get_tipo_autenticacion() está dando ldap.
4. Si esto va bien, debería estar entrando al autenticar de toba_autenticacion_ldap. Ahí ya podrías ir viendo si se conecta bien al ldap y hace la autenticación correctamente.

Saludos!

PD: no usé la extensión del núcleo para la autenticación y tampoco hice uso del tema de contraseñas vencidas (aunque con el tema del ldap asumo que esto va ir por cuenta del que gestione el ldap)
« Última Modificación: Octubre 24, 2013, 12:14:33 pm por moltedopablo »