LDAP 的目錄具有樹狀結構。階層中的所有目錄項目 (稱為物件) 都有一個規定的位置。此階層稱為目錄資訊樹 (DIT)。通往所需項目的完整路徑稱為可辨識名稱或 DN,可用來清楚辨識路徑。此項目路徑中的單一節點稱為相關可辨識名稱或 RDN。可將物件指定為下列兩種類型:
這些物件可包含其它物件。這些物件的類別為 root (目錄樹的根元素,此元素其實並不存在)、c (國家)、ou (組織單位) 和 dc (領域元件)。此模型可媲美檔案系統中的目錄 (資料夾)。
這些物件位於分支末端,而且沒有附屬物件。例如 person、InetOrgPerson 或 groupofNames。
目錄階層的頂端有一個根元素 root。其中可包含 c (國家)、dc (領域元件) 或 o (組織) 作為其附屬元件。從下列範例 (顯示於 圖 35-1) 可清楚看出 LDAP 目錄樹中的關係。
圖 35-1 LDAP 目錄結構
這個完整的結構圖是由一棵虛擬的目錄資訊樹所組成。其中包含三個階層的項目。每個項目分別對應到圖上的一個方塊。在此範例中,虛擬的 員工 Geeko Linux 有一個完整有效的可辨識名稱,即 cn=Geeko Linux,ou=doc,dc=example,dc=com。此名稱的形成是將 RDN cn=Geeko Linux 加到前一個項目 ou=doc,dc=example,dc=com 的 DN。
物件類型應儲存於 DIT 且遵循綱要全域判斷。物件類型則是由物件類別來決定。物件類別決定相關物件必須或可以被指定哪一種屬性。因此,綱要的內容必須包括所有物件類別的定義,以及所需應用程式案例中使用的屬性。有幾個通用綱要 (請參閱 RFC 2252 和 2256)。不過,仍可建立自定的綱要。如果用來操作 LDAP 的伺服器環境需要,也可使用多個綱要來互相輔助。
表 35-1提供一個小型概觀,介紹範例中所使用的 core.schema 和 inetorgperson.schema 物件類別,包括所需的屬性和有效的屬性值。
表 35-1 常用物件類別和屬性
物件類別 |
代表意義 |
範例項目 |
必要屬性 |
---|---|---|---|
dcObject |
domainComponent (領域的名稱元件) |
範例 |
dc |
organizationalUnit |
organizationalUnit (組織單位) |
doc |
ou |
inetOrgPerson |
inetOrgPerson (內部網路或網際網路的相關人員資料) |
Geeko Linux |
sn 與 cn |
範例 35-1中摘述一段綱要指示詞及其說明 (將各行編號以便說明)。
範例 35-1 摘自 schema.core
#1 attributetype (2.5.4.11 NAME ( 'ou' 'organizationalUnitName') #2 DESC 'RFC2256: organizational unit this object belongs to' #3 SUP name ) ... #4 objectclass ( 2.5.6.5 NAME 'organizationalUnit' #5 DESC 'RFC2256: an organizational unit' #6 SUP top STRUCTURAL #7 MUST ou #8 MAY (userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description) ) ...
organizationalUnitName 屬性類型和對應的 organizationalUnit 物件類別在此作為範例之用。第 1 行的重點為屬性名稱、其唯一的 OID (物件識別碼) (數值) 和屬性的縮寫。
第 2 行提供屬性說明和 DESC。另外還包括對應的 RFC,可據此列出相關定義。第 3 行的 SUP 表示此屬性所隸屬的上級屬性類型。
第 4 行開始為 organizationalUnit 物件類型的定義,內容包括 OID 和物件類別名稱,如同屬性定義一樣。第 5 行為物件類別的簡短說明。第 6 行的 SUP top 項目表示此物件類別不隸屬於其它物件類別。第 7 行始於 MUST,列出所有必須和 organizationalUnit 類型物件配合使用的屬性類型。第 8 行始於 MAY,列出所有允許和此物件類別配合使用的屬性類型。
有關綱要的使用,可在 OpenLDAP 文件中找到一篇很好的介紹。安裝好之後,請至 /usr/share/doc/packages/openldap2/admin-guide/index.html 尋找這篇文章。