2008-12-03 21 views
21

Estoy trabajando en una aplicación web Java que se integra con algunas otras aplicaciones externas que se implementan junto con ella. La información de autenticación debe estar sincronizada en todo y las otras aplicaciones desean autenticarse contra LDAP. La aplicación se implementará en entornos donde no habrá otro servidor LDAP para que todo pueda usarse; Tengo que proporcionarlo. Mi solución hasta ahora ha sido usar Penrose Server como una aplicación independiente, que he configurado para examinar las tablas en la base de datos de la aplicación principal y publicar LDAP en función de eso. Funciona bien, pero sería bueno tener algo que pueda integrarse en la aplicación principal para simplificar la implementación.¿Qué es un buen servidor LDAP Java incrustable?

Parece que Penrose puede ser incrustado, pero la documentación puede ser un poco irregular o desactualizada (aunque parece estar desarrollada activamente). Podría ser una solución aceptable, pero si hay otra por ahí que se sabe que funciona bien en una configuración incrustada, es posible que desee comprobarlo.

También me preocupan los problemas de GPL con Penrose. No estoy en libertad con GPL para el código fuente de la aplicación. No creo que haya sido un problema ejecutarlo de forma independiente, pero la incrustación puede ser no, no ... ¿Alguien lo sabe con certeza? Una licencia permisiva sería buena para evitar estos problemas.

Requisitos:

  1. LDAP v3
  2. Debe ser capaz de ser tiene el contenido del directorio actualizado mientras se ejecuta, mediante programación o por otro medio, como la sincronización con la base de datos como Penrose hace
  3. Fácil de configurar (ninguna configuración adicional para la aplicación en el momento del despliegue sería ideal)

Hasta ahora he mirado brevemente ApacheDS y OpenDS que parecen ser incrustables.

¿Alguien tiene experiencia con este tipo de cosas?

Respuesta

5

Como esta pregunta no ha recibido respuesta desde hace bastante tiempo, me gustaría sugerirle que también tome en cuenta la licencia comercial de Penrose: tiene una licencia doble para personas como usted, cuando las implicaciones de la GPL son prohibitivas . No conozco sus precios ni su modelo, pero podría ser más fácil y económico ir con una solución que ya conoces que acostumbrarse a otra solución a la que necesites acostumbrarte. Puede pagar con su dinero o con su tiempo ...

Además, para los registros, no se aplica en este caso: cuando los proyectos usan la GPL y desea incrustarlos de una manera no GPL, podría ser útil pedirles a los desarrolladores una licencia más permisiva. Algunas personas publican bajo GPL sin pensar en las implicaciones. Puede lograr que cambien la licencia si esto significa un uso más amplio del proyecto. Otros desean específicamente las implicaciones de GPL, pero siempre es bueno preguntar. Penrose ya ha pensado en esto y ofrece una licencia comercial.

2

Acabo de pasar un par de días investigando la exposición de nuestro usuario de la aplicación interna db como un servicio LDAP. Inicialmente miré apache-ds, aunque parece ser un servicio de directorio muy poderoso que lo amplía para exponer un DB relacional es increíblemente complejo.

Han decidido instalar Penrose, ya que parece ofrecer una solución bastante buena, lograron prototipar una solución en aproximadamente 2 horas.

7

Deberías echar un vistazo a Apache DS. Acabo de llamar al started using it as an embedded server para configurar una prueba JUnit.Está funcionando bien hasta ahora, lo único que me detiene en este momento es mi limitado conocimiento LDAP. ApacheDS parece un proyecto decente y creo que vale la pena el esfuerzo.

3

Nunca lo he hecho yo mismo, pero puede usar Spring Security para fácilmente set up an embedded Apache Directory server, con un mínimo de configuración de Spring XML.

+1

El servidor LDAP embebido en la primavera está diseñado solo para fines de prueba. Dudo que haya alguna recomendación para usarlo en producción. –

Cuestiones relacionadas