openLdap 解讀schema

來源:互聯網
上載者:User

schema,是一個標準,定義了ldap的對象和屬性,也就是ldap能夠儲存什麼資料,資料有什麼屬性等。類似於xml的DTD。xml的DTD定義了xml有什麼標籤以及這些標籤的內含項目關聯性、必填與可選等。ldap的schema也是這個作用。

openldap的預設的schema檔案一般在安裝目錄下的schema檔案夾下,分為多個檔案,每個檔案定義了不同的對象和屬性。

      一、schema:

      在LDAP中,schema用來指定一個目錄中所包含的對象(objects)的類型(objectClass),以及每一個類型(objectClass)中必須提供的屬性(Atrribute)和可選的屬性。可將schema理解為物件導向程式設計中的類,通過類定義一個具體的對象。LDIF中的資料條目可理解為是一個具體的對象,是通過schema來規劃建立的。因此,schema是一個資料模型,用來決定資料按什麼方式儲存,並定義儲存在不同的條目(Entry)下的資料之間的關係。schema需要在主設定檔slapd.conf中指定,以用來決定在目錄中可以使用哪些objectClass。
      在/etc/openldap/schema/目錄中提供了許多schema檔案,只需要在設定檔slapd.conf中使用include命令將需要使用的schema包含即可。例如,設定檔預設包含了以下schema檔案:

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema

提示:通常使用系統提供的schema就可解決大部分應用。管理員也可以自己設計制定schema,一般包括屬性定義(AttributeDefinition)、類定義(ClassDefinition)以及文法定義(SyntaxDefinition)等部分。這裡就不介紹具體的設計方法了。

二、瞭解objectClass
      LDAP中,一個條目必須包含一個objectClass屬性,且需要賦予至少一個值。每一個值將用作一條LDAP條目進行資料存放區的模板;模板中包含了一個條目必須被賦值的屬性和可選的屬性。
      objectClass有著嚴格的等級之分,最頂層是top和alias。例如,organizationalPerson這個objectClass就隸屬於person,而person又隸屬於top。 
      objectClass可分為以下3類:
結構型(Structural) :如person和organizationUnit;
輔助型(Auxiliary) :如extensibeObject;
抽象型(Abstract) :如top,抽象型的objectClass不能直接使用。

三、瞭解Attribute
      屬性(Attribute)類似於程式設計中的變數,可以被賦值。在OpenLDAP中聲明了許多常用的Attribute(使用者也可自己定義Attribute)。常見的Attribute含義如下:
  ● c:國家。
  ● cn:common name,指一個對象的名字。如果指人,需要使用其全名。
  ● dc:domain Component,常用來指一個網域名稱的一部分。
  ● givenName:指一個人的名字,不能用來指姓。
  ● l:指一個地名,如一個城市或者其他地理地區的名字。
  ● mail:電子信箱地址。
  ● o:organizationName,指一個組織的名字。
  ● ou:organizationalUnitName,指一個組織單元的名字。
  ● sn:surname,指一個人的姓。
  ● telephoneNumber:電話號碼,應該帶有所在的國家的代碼。
  ● uid:userid,通常指某個使用者的登入名稱,與Linux系統中使用者的uid不同。
 
提示:objectClass是一種特殊的Attribute,它包含其他用到的Attribute以及其自身。
 
      對於不同的objectClass,通常具有一些必設屬性值和一些可選屬性值。例如,可使用person這個objectClass來表示系統中一個使用者的條目,對於系統中使用者通常需要有這樣一些資訊:姓名、電話、密碼、描述等。如所示,對於person,通過cn和sn設定使用者的名和姓,這是必須設定的,而其他屬性則是可選的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.