让我首先说明我对LDAP几乎一无所知,这个问题本质上比其他任何问题更具概念性。由于这是一个很长的帖子,这里的问题最简单:
如何以最简单的方式将现有SQL Server数据库中的联系人数据公开给LDAP客户端?
SCENARIO
我所工作的组织开发了一个非常简单的内部CRM系统 - 实际上它更像是一个美化的联系人管理系统而不是CRM,但却充满了联系人的信息 - 他们现在希望能够轻松公开所有联系信息到其他桌面和移动客户端,如Outlook和/或iOS设备,我已经被分配了解如何做到这一点。
我做的第一件事是打开Outlook,看看可以添加什么样的互联网地址簿;在Outlook 2007中,我看到的唯一选项是LDAP。接下来,我查看了iOS设备,它还支持LDAP通讯簿。因此,看起来LDAP就是实现这一目标所需要的......
研究LDAP
如开头所述,我对LDAP几乎一无所知,为此目的进行研究并没有让我走得太远。我当然不想设置整个LDAP服务器而且我不需要LDAP安全性等(至少我理解,我没有),我需要做的就是暴露现有CRM数据库中的联系信息“LDAP方式。”
我在研究中似乎看到的共识是安装一个LDAP服务器,如OpenLDAP,并将其配置为使用SQL Server(即现有的CRM数据库)作为后备存储,从而有效地将数据库记录暴露给LDAP客户端。这似乎过于复杂,我希望有一种更简单的方式来公开LDAP表单中的联系人记录。
REST IDEA
我的想法 - 看起来像一个失败的原因 - 是通过一个简单的REST(或类似REST)API来暴露每个用户的联系人,该API返回可由Outlook,iOS和任何其他人使用的LDAP表单中的联系信息其他支持LDAP的客户端/设备。
最终目标是指示组织中的个人打开Outlook或他们的iOS设备设置,并输入一个简单的URI:
https://www.ourinternalcrm.com/{username}/contacts
上午我浪费了我的时间?
这是否可以远程进行,值得进一步调查,还是我错过了LDAP的全部内容以及以LDAP形式公开数据的方式有效?
如果可以,有人可以帮助我指出正确的方向吗?我需要使用C#和(最有可能的)WCF来实现所有这些。
答案 0 :(得分:3)
LDAP本身就是一种协议,不是通过HTTP或其他Web服务协议。
如果要开发比使用现有LDAP服务器技术更复杂的LDAP服务器。
您可以实现一个名为Active Directory轻量级目录服务(AD LDS)的Active Directory应用程序模式(ADAM)服务器,并构建您的应用程序或同步服务以向其推送联系人详细信息,从而无需创建一个。< / p>
答案 1 :(得分:2)
LDAP已经有一个定义良好的URL过滤器语法,只需使用它。请参阅RFC 4516。
答案 2 :(得分:0)
已经有一个名为DSML的规范。它基本上是LDAP数据模型的XML标记,以及LDAP操作及其语义。一些LDAP服务器支持开箱即用,或通过库支持,因为XML也可用作交换格式。
答案 3 :(得分:0)
因此,为了澄清,您试图通过REST公开驻留在Apache DS LDAP服务器上的数据,其中RESTFul API作为服务器端服务驻留在另一台服务器(Tomcat,Weblogic等)上?
我发现有趣的部分是Apache LDAP在他们的网站上通过JAVA API提供了很好的搜索和检索功能 - 非常直观且易于实现。但我遇到了同样的问题,并没有找到集成REST API来吐出数据的解决方案。
我发现的一些问题是,在尝试将Tomcat服务器连接到Apache LDAP服务器时似乎存在问题,因此可以通过@GET方法为数据提供服务。
如果有人解决了这个问题,我会欢迎发布,因为网上任何地方都没有解决方案。