LDAP協(xié)議是輕量目錄訪問協(xié)議(Lightweight Directory Access Protocol)的縮寫。通過將相關(guān)的內(nèi)容存放在統(tǒng)一的目錄之下,目錄服務(wù)為用戶提供了基于客戶/服務(wù)器工作方式的信息查詢手段。LDAP目錄服務(wù)是以登記項(xiàng)為基礎(chǔ)的。一個(gè)目錄登記項(xiàng)是一個(gè)屬性的集合,有一個(gè)名字,用來標(biāo)識該登記項(xiàng)其中的每個(gè)屬性都有一個(gè)類型和若干值。值的表示取決于屬性類型。登記項(xiàng)按照層次組織成樹狀結(jié)構(gòu)。LDAP協(xié)議基于目錄訪問協(xié)議X.500標(biāo)準(zhǔn),但是比X.500標(biāo)準(zhǔn)簡單了許多,并且可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/IP,這對基于Web的網(wǎng)絡(luò)應(yīng)用和訪問Internet是必須的。目前LDAP技術(shù)發(fā)展得很快,而且應(yīng)用前景非常廣泛。在局域網(wǎng)范圍內(nèi)應(yīng)用輕量目錄訪問協(xié)議(LDAP),可以讓網(wǎng)絡(luò)中運(yùn)行在幾乎所有計(jì)算機(jī)平臺上的所有的應(yīng)用程序從LDAP目錄中獲取信息。 LDAP目錄中可以存儲各種類型的用戶數(shù)據(jù),如用戶名、組織名、電子郵件地址、郵件路由信息、人力資源數(shù)據(jù)、公用密匙、聯(lián)系人列表等。通過把LDAP目錄作為系統(tǒng)集成和統(tǒng)一用戶管理中的一個(gè)重要環(huán)節(jié),可以簡化用戶在網(wǎng)絡(luò)內(nèi)部查詢信息的步驟,甚至主要的數(shù)據(jù)源都可以放在任何地方。
輕量目錄訪問協(xié)議是基于Web的目錄管理系統(tǒng)。目錄與關(guān)系數(shù)據(jù)庫相似,是指具有描述性的基于屬性的記錄集合,但它的數(shù)據(jù)類型主要是字符型,為了檢索的需要添加了 BIN(二進(jìn)制數(shù)據(jù))、CIS(忽略大小寫)、CES(大小寫敏感)、TEL(電話型)等語法(Syntax),而不是關(guān)系數(shù)據(jù)庫提供的整數(shù)、浮點(diǎn)數(shù)、日期、貨幣等類型,同樣也不提供像關(guān)系數(shù)據(jù)庫中普遍包含的大量的函數(shù),它主要面向數(shù)據(jù)的查詢服務(wù)(查詢和修改操作比一般是大于10:1),不提供事務(wù)的回滾(rollback)機(jī)制,數(shù)據(jù)修改使用簡單的鎖定機(jī)制實(shí)現(xiàn)All-or-Nothing,它的目標(biāo)是快速響應(yīng)和大容量查詢,并且提供多目錄服務(wù)器的信息復(fù)制功能。
LDAP的最大特點(diǎn)是可以在任何計(jì)算機(jī)平臺上,用容易獲得且數(shù)目不斷增加的LDAP的客戶端程序訪問LDAP目錄,而且也很容易定制應(yīng)用程序并為它添加LDAP支持。
LDAP協(xié)議是跨平臺的和標(biāo)準(zhǔn)的協(xié)議,因此應(yīng)用程序可以將LDAP目錄放在任何操作系統(tǒng)的服務(wù)器上。因?yàn)槭荌nternet的標(biāo)準(zhǔn),所以LDAP得到了廣泛的應(yīng)用。支持LDAP的應(yīng)用產(chǎn)品不用考慮客戶端或服務(wù)端是怎么樣的,LDAP服務(wù)器可以是任何一個(gè)開發(fā)源代碼或商用的LDAP目錄服務(wù)器。因?yàn)榭梢杂猛瑯拥膮f(xié)議、客戶端連接軟件包和查詢命令與LDAP服務(wù)器進(jìn)行交互。大多數(shù)的LDAP服務(wù)器安裝起來很簡單,也容易維護(hù)和優(yōu)化。
LDAP服務(wù)器可以用“推”或“拉”的方法復(fù)制部分或全部數(shù)據(jù),例如:可以把數(shù)據(jù)“推”到遠(yuǎn)程的辦公室,以增加數(shù)據(jù)的安全性。復(fù)制技術(shù)是內(nèi)置在LDAP服務(wù)器中的,而且很容易配置。如果要在DBMS中使用相同的復(fù)制功能,數(shù)據(jù)庫生產(chǎn)商就會要用戶支付額外的費(fèi)用,而且也很難管理。
LDAP允許用戶根據(jù)需要使用ACI(訪問控制列表)控制對數(shù)據(jù)讀和寫的權(quán)限。例如,設(shè)備管理員可以有權(quán)改變員工的工作地點(diǎn)和辦公室號碼,但是不允許改變記錄中其他的域。 ACI可以根據(jù)誰訪問數(shù)據(jù)、訪問什么數(shù)據(jù)、數(shù)據(jù)存在什么地方,以及其他信息對數(shù)據(jù)進(jìn)行訪問控制。因?yàn)檫@些都是由LDAP目錄服務(wù)器完成的,所以不用擔(dān)心在客戶端的應(yīng)用程序上是否要進(jìn)行安全檢查。
LDAP是目錄服務(wù)在TCP/IP上的實(shí)現(xiàn)(RFC 1777 V2版和RFC 2251 V3版)。它是對 X·500的目錄協(xié)議的移植,但是簡化了實(shí)現(xiàn)方法,所以稱為輕量級的目錄服務(wù)。在LDAP中目錄是按照樹型結(jié)構(gòu)組織,目錄由條目(Entry)組成,條目相當(dāng)于關(guān)系數(shù)據(jù)庫中表的記錄;條目是具有區(qū)別名(DN,Distinguished Name)的屬性(Attribute)集合,DN相當(dāng)于關(guān)系數(shù)據(jù)庫表中的關(guān)鍵字(Primary Key)。屬性由類型(Type)和多個(gè)值(Values)組成,相當(dāng)于關(guān)系數(shù)據(jù)庫中的域(Field)由域名和數(shù)據(jù)類型組成,這只是為了方便檢索的需要。LDAP中的Type可以有多個(gè)Value,而不是關(guān)系數(shù)據(jù)庫中為降低數(shù)據(jù)的冗余性要求實(shí)現(xiàn)的各個(gè)域必須是不相關(guān)的。LDAP中條目的組織一般按照地理位置和組織關(guān)系進(jìn)行組織,非常直觀。LDAP把數(shù)據(jù)存放在文件中,為提高效率可以使用基于索引的文件數(shù)據(jù)庫,而不是關(guān)系數(shù)據(jù)庫。LDAP協(xié)議集還規(guī)定了DN的命名方法、存取控制方法、搜索格式、復(fù)制方法、URL格式、開發(fā)接口等。