2011-09-14 29 views
6

讓我,我知道旁邊沒有關於LDAP和這個問題在本質上是比什麼都重要概念第一狀態。由於這是一篇很長的文章,下面是最簡單的問題:是否可以在沒有LDAP服務器的情況下通過REST API公開LDAP「合規」數據?

如何以最簡單的方式將現有SQL Server數據庫中的聯繫人數據公開到LDAP客戶端?

情景

我對已經制定了一個非常簡單的內部CRM系統工作的組織 - 實際上它更是一個榮耀的聯繫人管理系統比CRM的,而是充滿了聯繫人的信息,但是 - 他們現在想要的能夠輕鬆地將所有聯繫信息公開給其他桌面和移動客戶端,例如Outlook和/或iOS設備,並且我已分配了解如何執行此操作。

我做的第一件事就是打開Outlook,看看可以添加什麼樣的互聯網地址簿;在Outlook 2007中,我看到的唯一選擇是LDAP。接下來,我看了一個iOS設備,它也支持LDAP地址簿。因此,它似乎像LDAP是需要什麼來實現這一目標?

研究LDAP

正如開頭所說,我旁邊的一無所知LDAP瞭解和研究它爲了這個目的沒」讓我走得很遠。我當然不希望建立一個完整的LDAP服務器和我有沒有必要爲LDAP安全性等(至少據我所知,我沒有),我需要做的是從現有的CRM數據庫公開的聯繫人信息「LDAP方式」。

我在研究中似乎看到的一致意見是安裝LDAP服務器(如OpenLDAP)並將其配置爲使用SQL Server(即現有的CRM數據庫)作爲後備存儲,從而有效地將數據庫記錄暴露給LDAP客戶端。這似乎過於複雜,我希望有一種更簡單的方式來公開LDAP格式的聯繫人記錄。

其餘IDEA

的想法,我有 - 這看起來像一個失敗的事業 - 是通過一個簡單的REST暴露每個用戶的聯繫人(或類似REST)API,在LDAP返回的聯繫人信息Outlook,iOS和任何其他支持LDAP的客戶端/設備都可以使用該表單。

的最終目標是指導個人在我的組織打開Outlook或他們的iOS設備的設置,並輸入一個URI簡單:

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

我在浪費我的時間?

這甚至遠程可能的,值得進一步研究還是我失去了LDAP的整點和方式暴露在LDAP形式作品的數據?

如果這是可能的,可以有人幫點我在正確的方向?我需要使用C#和(最有可能的)WCF來實現所有這些。

回答

3

LDAP是在本身的協議,而不是通過HTTP或另一web服務協議。

如果你想發展,這將是比使用現有的LDAP服務器技術更復雜的LDAP服務器。

您可以實現一個Active Directory應用程序模式(ADAM)服務器現在稱爲Active Directory輕型目錄服務(AD LDS),建立自己的應用程序或同步服務,推動聯繫方式給它,從而消除的要求創建一個。

+0

感謝您的回答。我完全同意,滾動我自己的LDAP服務器會過於複雜,這不是目標。我會研究ADLDS,但我試圖避免兩個數據存儲,我猜我會走這條路線(因此你提到了一個同步服務)。 – sellmeadog

+0

謝謝伯尼。你的答案是最接近「否」的那個,不幸的是,這似乎是對這個問題的正確答案。 – sellmeadog

0

目前已是該規範稱爲DSML。它基本上是一個LDAP數據模型的XML標記,以及LDAP操作及其語義。一些LDAP服務器支持開箱即用,或者通過庫來支持,因爲XML作爲交換格式也很有用。

+0

如果從REST服務端點返回DSML,LDAP客戶端是否知道如何處理數據,即,我可以將Outlook指向該端點並加載地址簿? – sellmeadog

+0

DSML當然不是普遍的,但大多數客戶不會通過Web與LDAP通話。我主要將它指出來,如果你想將LDAP映射到某個東西,那麼已經有一個可以採用的XML表示。 –

+1

DSML是基於SOAP的服務,因此不是REST服務端點。 –

2

LDAP已經有了一個定義良好的URL過濾器語法,只是使用它。見RFC 4516

+0

謝謝你指點我。我試圖找到一個解決方案,不需要LDAP服務器,但可以「僞造」服務器,只需在LDAP表單中的現有服務器中公開數據。 – sellmeadog

+0

@crazyrabian但Outlook希望將LDAP協議與LDAP服務進行對話。爲什麼它應該從RESTful URL中找到任何意義? – EJP

+1

我發現的是它沒有意義。同樣,問題在沒有對LDAP的理解的情況下被問到,並試圖確定是否有可能在沒有LDAP服務器的情況下以LDAP形式公開數據。答案似乎是一個簡單的「不」,我很滿意,但我想找到一種方法將現有的聯繫人數據共享給客戶端,而無需設置和同步LDAP服務器(或任何其他服務器)。我不再冒險擊倒這個兔子洞。 – sellmeadog

0

所以爲了澄清,你正在試圖以暴露通過REST駐留一個Apache DS LDAP服務器上,由此具有REST API駐留作爲另一個服務器(的Tomcat,Weblogic的,等等)上的服務器側服務數據?

有趣的部分是,我發現Apache的LDAP有一個很好的搜索,並通過在其網站上的Java API檢索功能 - 非常直觀,易於實現。但是我有同樣的問題,並沒有找到一個解決方案來集成REST API來吐出數據。

我發現有些問題是,似乎有一個問題想一個Tomcat服務器連接到一個Apache LDAP服務器時,這樣通過@ GET方法可以將數據服務。

如果有人解決了這個問題後它,我會歡迎,因爲有任何地方沒有解決網絡的這上。

相關問題