Foros del Web » Programando para Internet » PHP »

ldap

Estas en el tema de ldap en el foro de PHP en Foros del Web. Hola a todos: De nueva cuenta les escribo, siempre he recibido mucho apoyo de su parte espero esta vez no sea la excepción, resulta que ...
  #1 (permalink)  
Antiguo 17/06/2005, 13:13
 
Fecha de Ingreso: abril-2005
Mensajes: 48
Antigüedad: 19 años
Puntos: 0
ldap

Hola a todos:

De nueva cuenta les escribo, siempre he recibido mucho apoyo de su parte espero esta vez no sea la excepción, resulta que tengo una base de datos a la cual puede accesar varias personas y hacer le modificaciones, la conexion a la base de datos en mysql la hago desde php, pero tengo que controlar el acceso através de contraseñas, me dijieron del protocolo ldap, alguien sabe algo para programarlo en php....................

Gracias, espero su respuesta
  #2 (permalink)  
Antiguo 23/06/2005, 05:39
 
Fecha de Ingreso: julio-2003
Mensajes: 165
Antigüedad: 20 años, 9 meses
Puntos: 1
PHP cuenta con su propia extensión para crear clientes LDAP: http://www.php.net/manual/en/ref.ldap.php

Sin embargo, no veo que el uso de LDAP sea particularmente conveniente en tu caso, si se trata de controlar la autenticación para el acceso a una base de datos MySQL.

No conozco muy bien los detalles de tu aplicación, pero se me ocurren tres alternativas, dependiendo del grado de control que desees y los recursos disponibles (permisos, extensiones PHP disponibles, etc.)

1) Autenticación nativa de MySQL.
MySQL implementa su propio mecanismo de autenticación que puedes usar para el control de quienes se conectan al servidor de bases de datos. En este caso, la aplicación tendría que conectarse a la base de datos con diferentes datos de acceso dependiendo del usuario.

Me parece que la ventaja más grande de este método es que, aparte de la verificación de usuarios/contraseñas al conectarse con la base de datos, no es necesario implementar validaciones extra; todos los privilegios son manejados por MySQL. La base de datos misma se encarga de permitir o denegar el acceso de lectura o escritura a las diferentes bases/tablas dependiendo del usuario usado para conectarse.

Por otro lado, la desventaja más grande puede ser que el proceso de configurar los privilegios en MySQL es un poco complicado, y requiere de cuidado para que las cuentas reciban el nivel de acceso preciso.


2) Autenticación usando un mecanismo propio sobre MySQL
Alternativamente (y este es un método usado por muchísimas aplicaciones que hacen uso de bases de datos), es posible crear un mecanismo de autenticación propio, que almacene su información en la misma base de datos.

Es decir, la conexión con la base de datos se hace siempre con una cuenta determinada fija, y a partir de allí se impone una capa de abstracción adicional para la administración de usuarios a partir de datos que están almacenados en la base de datos.

Por ejemplo, puedes crear una tabla llamada usuarios, en donde almacenas nombres de usuarios, IDs, contraseñas, etc. y otra tabla llamada sesiones en donde se almacenen los IDs de usuario que hayan sido autenticados y tengan sesiones activas en el sistema. Por supuesto, este es solo uno de los varios esquemas que pueden crearse si se trata de un mecanismo de autenticación personalizado. Los detalles pueden variar bastante dependiendo de la aplicación en cuestión.

Este sistema es conveniente si no es posible administrar los privilegios de MySQL directamente.

Por otra parte, el defecto de este mecanismo es que los detalles de implementación se pueden hacer muy complicados, especialmente si es necesario crear diferentes niveles de acceso dependiendo del tipo de usuario. Entre más abstracciones se vean involucradas, más trabajo hay que dedicarle a este mecanismo.


3) Autenticación usando un mecanismo propio mediante otros recursos (archivos de texto plano, bases de datos tipo dbm, LDAP, etc.)

En este caso se trata de implementar un mecanismo de autenticación propio, como en 2), pero usando otro medio de persistencia de datos diferente a MySQL mismo. Puede ser mediante archivos de texto plano, XML, bases de datos simples tipo dbm, LDAP, etc. Cada alternativa tiene sus propias implicaciones en lo que concierne a seguridad, confiabilidad, rendimiento y demás, y en cualquier caso va a requerir al menos el mismo trabajo que la alternativa 2). Sin embargo, la ventaja es que, dependiendo de tu experiencia con las diferentes herramientas, es posible que el desarrollo y mantenimiento de este mecanismo resulte mucho más fácil, y por lo tanto, resulte más productivo a largo plazo.


En fin, solo puedo conjeturar generalidades ya que no ofreces muchos detalles sobre tu aplicación, pero al menos en principio puedo decirte que LDAP no sería mi primera opción para implementar el soporte de usuarios, si yo estuviera desarrollando mi propio cliente de bases de datos. Y disculpa la cháchara tan larga :).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:05.