LDAP是light weight Directory Access Protocol (輕量級目錄訪問協議)的縮寫,其前身是更為古老的DAP協議。基於X.500標準的,但是很簡單,並且可以根據需要定製。與X.500不同,LDAP支援TCP/IP,這對訪問Internet是必須的。LDAP的核心規範在RFC中都有定義,大體上講,LDAP協議定義了和後台資料庫通訊的方法、用戶端軟體和LDAP協議之間的通訊標準,如後圖。
LDAP Client是指各種需要身份認證的軟體,例如Apache、ProFTPD和Samba等。LDAP Sever指的是實現LDAP協議的軟體,例如OpenLDAP等。DataStorage指的是OpenLDAP的資料存放區,如關係型資料庫(Mysql)或查詢效率更高的嵌入式資料庫(BerkeleyDB),甚至是平面文本資料庫(一個TXT的文字檔)。可見OpenLDAP軟體只是LDAP協議的一種實現形式,並不包括後台資料庫儲存,但在很多時候管理員經常將LDAPServer和DataStorage放在同一伺服器中,這樣就產生了常說的LDAP資料庫,雖然後台資料庫可以多種多樣,但LDAP協議還規定了資料的儲存方式。LDAP資料庫是樹狀結構,與DNS類似。
webldap架構
在圖右中,以這種方式儲存資料最大的一個好處就是查詢速度塊,LDAP資料庫專門對讀操作進行了最佳化,OpenLDAP配合Berkeley DB 可使其讀操作的效率得到很大提高,LDAP資料庫的樹狀結構的另一個好處是便於分布式的管理。
實現思路
同一身份認證是改變原有的認證策略,使需要認證的軟體都通過LDAP進行認證,如下圖。在同一身份認證之後,使用者的所有資訊都儲存在LDAP Server中。終端使用者在需要使用公司內部服務的時候都需要通過LDAP伺服器的認證。每個員工只需記住一個密碼,在需要修改使用者資訊的時候可以通過管理員提供的Web介面直接修改LDAP Server中的資訊。