
LDAP模型是由X.500協議中承接來的,是LDAP的組成部分,用來引導客戶如何用目錄服務。LDAP定義了以下4個模型:
1.信息模型
LDAP信息模型用來表述它中信息的表達方式,包含目、屬、值3部分。LDAP用專有邏輯格式存儲信息,該模型既不是關係的,也不是完全面向對象的。簡單概括為:
①LDAP中信息邏輯上表示為條目。
②條目包含一到多個對象類。
③每個對象類由多個屬性組成。
④每個屬性包含一到多個同一類型的數值。
⑤對象類和屬性的類型定義構成了schema。
條目是目錄中最基本的信息單元,可認為是目錄樹中的一個節點。LDAP客戶與服務器用條目共享信息,條目是LDAP服務器的基本元素。執行搜索時服務器返回一組匹配條目,但修改時一次只能影響服務器中的一個條目。條目可被任何支持LDAP的客戶端創建,或顺利获得用服務器工具導入,也可由應用程式基於非LDAP數據或用戶輸入信息創建。
在目錄中加一個條目時,該條目一定要包含一個或多個對象類,每個對象類說明了該條目中的必選屬性與可選屬性。
每個條目均只有一個DN(辨別名),用來標識條目在目錄中的位置。
每個條目均是由多個屬性構成的,每個屬性說明了對象的一個約束。每個屬性有一個類型和一個或多個值。該類型說明了含在屬性中的信息類型,它的值中有實際數據。
屬性有與它關聯的語法與匹配規則,屬性語法指定可在屬性中存放的數據格式,如INTEGER語法允許值中只含數字,不能有非數字字符。
匹配規則有比較值是否相等與對值進行排序兩個作用。
2.命名模型
LDAP命名模型定義了怎樣在目錄系統中組織數據及查找數據。命名模型的靈活性可很方便地以想要的方式組織數據。例如,可把組織中全部人員及所有組放在一個容器下,或按組織結構的地理分佈組織目錄結構。
LDAP命名模型確定由像倒立的樹結構規劃條目,與UNIX系統的文件系統特別相似。
在LDAP目錄中任意一個節點均可含信息,且也能是個容器,即任意一個LDAP條目都可有子節點。
由命名模型能給出目錄中所有條目的僅一個名稱,從而可毫無歧義地引用任何一個條目。在LDAP中用DN來引用條目。
在目錄中,按目錄樹從下到上命名條目。因該樹形結構決定了從根節點到其他任何節點的路徑是唯一的,所以說每一個條目的DN是唯一的。
在DN中最左邊的內容叫做相對辨別名(RDN)。對共享同一父節點的全部節點的RDN肯定是只有一個的。若不屬於同一個父節點,則節點的RDN可相同。
當特殊字符出現在DN中時,必須轉義。
3.功能模型
LDAP功能模型說明了LDAP協議能用的有關操作,拜访問在目錄樹中保存的數據。在LDAP中共有4類10種操作。
①查詢類操作,如搜索、比較。
②更新類操作,如添加、刪除、修改條目,修改條目名。
③認證類操作,如綁定、解綁定。
④其他操作,如放棄與擴展。
4.安全模型
安全模型給出一個框架,使目錄中的信息不被非法訪問。LDAP中的安全模型主要由身份認證、安全通道和訪問控制實現。
LDAP是面向連接的協議,在對LDAP目錄操作前,LDAP客戶端一定要取得一個到LDAP服務端的連接,在此過程中要驗證LDAP客戶端的身份,該過程可以認為是用戶綁定。
LDAP Y2隻滿足簡單的密碼驗證。LDAP V3做到了SASL安全框架,它向多種驗證協議給了一種標準的驗證方法,對不一樣的驗證系統,可達到特定的SASL機制。
在LDAP中給出了基於SSL/TLS的通信安全保障。SSL/TLS基於PKI信息安全技術,LDAP由StartTLS方式開啟TLS服務,可给予通信中的數據保密性、完整性保護;由強制客戶端證書認證的TLS服務,也可雙向驗證客戶端身份與服務器端身份。
在用戶驗證完成後,可給該用戶分配附加的權限。比如,一些用戶只可查看特定的條目,但不能修改;一些用戶可查看且修改全部的條目等。這一過程可認為是訪問控制。
