LDAP是什麼?

LDAP是什麼?
首先LDAP是一個輕量級的產品(LightWeight),是一個Directory(D),存取的協議(Access Protocol)。

我要着重指出,LDAP是一個數據庫,但是又不是一個數據庫。說他是數據庫,因爲他是一個數據存儲的東西。但是說他不是數據庫,是因爲他的作用沒有數據庫這麼強大,而是一個目錄。
爲了理解,給一個例子就是電話簿(黃頁)。我們用電話簿的目的是爲了查找某個公司的電話,在這個電話簿中附帶了一些這個公司的基本信息,比如地址,經營範圍,聯繫方式等。
其實這個例子就是一個LDAP在現實生活中的表現。電話簿的組織結構是一條一條的信息組成,信息按照行業,類比進行了分類。每條記錄都分成了若干的區域,其中涵蓋了我們要的信息。這就是一個Directory。一個樹狀的結構,每個葉子都是由一條一條的分成若干區域的記錄。LDAP就是這麼一個東西。
從概念上說,LDAP分成了DN, OU等。OU就是一個樹,DN就可以理解爲是葉子,葉子還可以有更小的葉子。但是LDAP最大的分層按照IBM的文檔是4層。

還是上面這個例子,電話簿由電話公司進行維護,因此寫是由他們去寫,去組織。寫完了,組織好了,就完成了,以後再寫,再組織的次數是有限的。而其作用是爲了查找。LDAP也是類似,目的不是爲了寫,主要是爲了查找。這就回答了有同志問,有人要寫有人要讀的併發怎麼解決的問題。LDAP的用途不是針對這個來設計的,如果你有這樣的需求,解決辦法就應該是數據庫,而不是LDAP。這就是另外一個例子,Access和SQL Server。Access就是一個數據庫產品,但是主要用於家庭,功能和性能都比較弱。SQL Server就是一個專業的數據庫系統,功能強大。LDAP是一個輕量級的產品,主要目的是爲了查,因此在架構和優化主要是針對讀,而不是寫。但並不是說LDAP不能滿足,只是說強項不在這裏。

LDAP作爲一個統一認證的解決方案,主要的優點就在能夠快速響應用戶的查找需求。比如用戶的認證,這可能會有大量的併發。如果用數據庫來實現,由於數據庫結構分成了各個表,要滿足認證這個非常簡單的需求,每次都需要去搜索數據庫,合成過濾,效率慢也沒有好處。雖然可以有Cache,但是還是有點浪費。LDAP就是一張表,只需要用戶名和口令,加上一些其他的東西,非常簡單。從效率和結構上都可以滿足認證的需求。這就是爲什麼LDAP成爲現在很人們的統一認證的解決方案的優勢所在。

當然LDAP也有數據寫入的接口,是可以滿足錄入的要求的。這裏就不多說了。
我認爲現在最大的LDAP Server,應該還是Microsoft的AD。雖然不一定是標準的,但是的確是用的最多的一個LDAP Server。每個公司只要用到域,就肯定會用到了。

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/gotohbu/archive/2009/06/08/4251336.aspx


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章