2011-09-14 25 views
6

Permítanme primero decir que no sé casi nada sobre LDAP y esta pregunta es de naturaleza más conceptual que cualquier otra cosa. Como esta es una publicación larga, esta es la pregunta en su forma más simple:¿Es posible exponer datos LDAP "compatibles" a través de una API REST sin un servidor LDAP?

¿cómo puedo exponer los datos de contacto en una base de datos existente de SQL Server a clientes LDAP de la manera más fácil posible?

ESCENARIO

La organización para la que trabajo se ha desarrollado un sistema muy simple de CRM interno - en realidad es más de un sistema de gestión de contactos glorificado de CRM, pero lleno de información de contacto, sin embargo - y ahora quiere que el capacidad de exponer fácilmente toda la información de contacto a otros clientes de escritorio y dispositivos móviles como Outlook y/o dispositivos iOS y he sido asignado a descubrir cómo hacerlo.

Lo primero que hice fue abrir Outlook y ver qué tipo de libretas de direcciones de Internet se pueden agregar; en Outlook 2007, la única opción que veo es LDAP. A continuación, miré un dispositivo iOS y también es compatible con las libretas de direcciones LDAP. Por lo tanto, parece que LDAP es lo que se necesita para lograr este objetivo ...

investigando LDAP

Como se dijo al principio, sé casi nada acerca de LDAP y la investigación para este propósito dejase' me llevas muy lejos. Ciertamente no quiero configurar un servidor LDAP completo y no necesito seguridad LDAP, etc. (al menos tal como lo entiendo, no lo hago), todo lo que tengo que hacer es exponer la información de contacto de la base de datos CRM existente "el camino LDAP".

El consenso que parece ver en mi investigación es instalar un servidor LDAP como OpenLDAP y configurarlo para usar SQL Server (es decir, la base de datos CRM existente) como backing store exponiendo así los registros de la base de datos a LDAP clientela. Esto parece demasiado complejo y espero que exista una manera más fácil de exponer los registros de contacto en formato LDAP.

LA IDEA DE DESCANSO

La idea que tengo - que está buscando como una causa perdida - es exponer a los contactos de cada usuario a través de un simple reposo (o de descanso similar) API que devuelve información de contacto en el LDAP formulario que sea utilizable por Outlook, iOS y cualquier otro cliente/dispositivo que admita LDAP.

El objetivo final es instruir a las personas en mi organización para abrir Outlook o sus configuraciones de dispositivos iOS y escriba un URI tan simple como:

https://www.ourinternalcrm.com/{username}/contacts

estoy perdiendo mi tiempo?

¿Es esto remotamente posible y vale la pena seguir investigando o me está faltando todo el punto de LDAP y la forma en que funciona exponer los datos en formato LDAP?

Si esto es posible, ¿alguien puede por favor ayudarme a orientarme en la dirección correcta? Necesito implementar todo esto usando C# y (lo más probable) WCF.

Respuesta

3

LDAP es un protocolo en sí mismo y no está sobre HTTP u otro protocolo de servicio web.

Si desea desarrollar un servidor LDAP que sería más complicado que usar una tecnología de servidor LDAP existente. Puede crear un servidor de modo de aplicación de Active Directory (ADAM).

+0

Gracias por la respuesta. Estoy completamente de acuerdo en que rodar mi propio servidor LDAP sería demasiado complicado y ese no es el objetivo. Investigaré los ADLDS, pero estoy tratando de evitar dos tiendas de datos, y supongo que terminaré haciendo esta ruta (de ahí su mención de un servicio de sincronización). – sellmeadog

+0

Gracias Bernie. Su respuesta fue la más cercana a "no" que se dio, la cual, lamentablemente, parece ser la respuesta correcta a esta pregunta. – sellmeadog

0

Ya existe una especificación para esto llamada DSML. Básicamente es un marcado XML de un modelo de datos LDAP, junto con operaciones LDAP y su semántica. Algunos de los servidores LDAP lo admiten de fábrica o mediante bibliotecas, ya que el XML también es útil como formato de intercambio.

+0

Si se devuelve DSML desde un punto final del servicio REST, ¿saben los clientes de LDAP qué hacer con los datos, es decir, puedo señalar Outlook a ese punto final y cargar una libreta de direcciones? – sellmeadog

+0

DSML ciertamente no es generalizado, pero la mayoría de los clientes no van a estar hablando con el LDAP a través de la web de todos modos. Lo señalo principalmente en términos de si desea asignar LDAP a algo, entonces ya existe una representación XML que puede adoptar. –

+1

DSML es un servicio basado en SOAP y, por lo tanto, no es un punto final del servicio REST. –

2

LDAP ya tiene una sintaxis de filtro de URL bien definida, solo utilícela. Ver RFC 4516.

+0

Gracias por indicarme esto. Estoy tratando de encontrar una solución que no requiera un servidor LDAP, pero en su lugar puede "falsificar" el servidor y simplemente exponer los datos en un servidor existente en el formulario LDAP. – sellmeadog

+0

@crazyrabian Pero Outlook espera hablar el protocolo LDAP con un servicio LDAP. ¿Por qué debería tener sentido una URL REST? – EJP

+1

Lo que estoy descubriendo es que no tiene sentido. Una vez más, la pregunta se realizó sin una comprensión de LDAP y tratando de determinar si es posible exponer datos en forma LDAP sin un servidor LDAP. La respuesta parece ser un simple "no" con el que estoy de acuerdo, pero me gustaría encontrar una forma de compartir los datos de contacto existentes con los clientes sin configurar y sincronizar un servidor LDAP (o cualquier otro servidor para el caso). Ya no me estoy aventurando en este agujero de conejo. – sellmeadog

0

Para aclarar, ¿está tratando de exponer los datos que residen en un servidor Apache DS LDAP a través de REST, donde la API RESTFul reside como un servicio del servidor en otro servidor (Tomcat, Weblogic, etc.)?

La parte interesante que encontré es que Apache LDAP tiene una buena función de búsqueda y recuperación a través de una API de JAVA en su sitio, muy intuitiva y fácil de implementar. Pero tengo el mismo problema y no he encontrado una solución para integrar una API REST para escupir los datos.

Algunos problemas que encontré es que parece haber un problema al intentar conectar un Servidor Tomcat a un servidor Apache LDAP, de modo que los datos a través de un método @GET puedan repararse.

Me gustaría ver si alguien resolvió este problema para publicarlo, ya que NO hay ninguna solución en la web para esto.