一 信息模型
目錄的基本信息單元是條目,條目是關於描述對象的信息集合。
條目由屬性集合組成,每個屬性說明對象的一個特徵。每個屬性有一個類型和一個或多個
值。屬性類型說明包含在此屬性中的信息的類型,而值包含實際的數據。(電話、郵箱、姓名、部門)
LDIF (LDAP Interchange Format)是指存儲LDAP配置信息及目錄內容的標準文本文件格式.LDIF文件常用來向目錄導入或更改記錄信息,這些信息需要按照LDAP中schema的格式進行組織,並會接受schema 的檢查,如果不符合其要求的格式將會出現報錯信息
dn: uid=bjensen, dc=airius, dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
mail: [email protected]一個LDIF條目由多行組成。第一行以dn:開始,後跟條目的分辨名。隨後是條目的屬性,每
個屬性一行。每個屬性值前面是屬性類型和冒號(:)模式 schema
所有條目都有一個必須屬性集合和一個可選屬性集合。所有關於必須屬性和可選屬性的信息集合統稱爲模式(Schema),目錄模式對存儲在目錄中的信息的類型和值保持控制和維護。
總之,LDAP 信息模型描述條目,條目是目錄的基本信息單元。條目由屬性組成,屬性由一個屬性類型和一個或多個屬性值組成。屬性的約束用來限制作爲屬性值的數據的類型和長度。目錄模式規定了一個屬性是必須屬性還是可選屬性。
二 命名模型
命名模型
LDAP 命名模型定義用戶如何組織和引用數據,使用戶可以用一種易於管理的方式把條目放入目錄。(條目以倒樹(根在上)的形式排列)
UNIX 文件系統和 LDAP 目錄之間有三點不同:
第一是 LDAP 模型沒有真正的根條目。文件系統有一個根目錄,另一方面,在 LDAP 目錄中,根條目是概念性的——不作爲一個可以存放數據的條目存在。
第二是目錄的每個節點都包含數據,即LDAP條目允許在他的下面有子節點。在文件系統中,只有目錄可以有子節點,而且只有文件可以包含數據。第三是 樹中的獨立節點如何命名。LDAP名稱與文件系統名稱的方向是相反的。
模型作用
命名模型是爲目錄中的每個條目給出一個唯一的名稱。在 LDAP 中,使用分辨名(DN)來唯一標識條目。
功能模型
LDAP 功能模型包含一個可以分成三組的操作集合。查詢類操作允許用戶搜索目錄並取回目錄數據。更新類操作允許用戶對目錄條目進行添加、刪除和修改。認證和控制類操作允許客戶端向目錄證明自己的身份,並在幾個方面對會話進行控制
查詢操作
int ldap_search(
LDAP *ld,
char *base,
int scope,
char *filter,
char *attrs[],
int attrsonly
);第一個參數是 LDAP 連接的句柄。
第二個參數是查詢的基對象,這個參數用一個 DN 來表示,它表示你要查詢的目錄(子)樹的根。
第三個參數是範圍。範圍有三個類型。一是BASE,是指你要限定查詢條件爲基對象。這通常用來在目錄中找一個特殊的條目。
二是ONELEVEL,是指你想要查詢的只是基對象直接下級的條
目。三是SUBTREE,是指你想要查詢從基對象以任何路徑到樹葉的整個子樹。 下圖描述了查詢範圍的三種類型
第四個查詢參數是查詢過濾條件。
第五個查詢參數是查詢結果返回的屬性列表。你可以指定所有的屬性都要被返回,也可要求返回部分屬性值
更新類操作
LDAP 更新類操作包括四種操作:添加、刪除、修改和重命名(即修改 RDN),這四種操作定義了在目錄中操作數據的方式。
認證和控制(會話)
三 schema
功能
目錄的模式(schema)是一組規則,用來確定目錄能存儲什麼和服務器和客戶端在進行目錄操作時如何對待數據. schema 被 LDAP 各方(服務器、客戶端、應用程序)用來作爲數據交換的”標準”,schema 也被用作目錄中存儲的數據的長度、範圍和格式的強制約束.
最後,schema 也有利於目錄中數據的規整和對訪問者權限的控制元素
構成 schema 的元素有屬性類型(attribute types)、對象類(object classes)、語法
(syntaxes)、匹配規則(matching rules)、目錄信息樹內容規則(DIT content rules)、目錄信息樹結構規則(DIT strctural rules)和命名形式(name forms).
OID(對象標識符)
每一個 schema 元素由一個 OID(對象標誌符)來作唯一標誌。(用戶可以自己定義) OID 是由 1 段或多段十進制數字組成,段之間以點(%x2E,".")分隔,例如”1.2.3.4”. 其中第 1 段(或稱根 OID,base OID)需向
IANA 免費申請.如果用戶需要自定義 schema 要素,應申請自己組織的根 OID,不要使用其他組織的或臆想的根 OID。元素格式