LDAP基礎概念

LDAP基礎概念
數據庫

1.一、LDAP目錄結構
數據結構


wKioL1PHexCiFLkzAACx6mZ_OZI194.jpg

  此圖爲樹形目錄結構,我將此跳過去了,由於這個是按照「國家這種結構來劃分的」。若是你喜歡這樣看更好,以下還有一種:ide

  wKioL1PHe5TDP0w8AACgqGGzxhU812.jpg

樹也能夠根據互聯網域名組主。這種命名方式正愈來愈受歡迎,由於它容許使用DNS爲目錄服務定位 。這個LDAP目錄樹中使用基於域的命名。比較適合個人應用場景(從域名-->部門-->我的)。post



1.二、條目(Entry)ui

  條目(Entry)就是目錄管理的對象,他是LDAP中最基本的顆粒,就像字典中的詞條,或者是數據庫中的記錄。一般對LDAP的添加、刪除、更改、檢索都是以條目爲基本對象的。
編碼

  每個條目都有一個惟一的標名(distinguished Name ,DN),好比(1.1中圖2互聯網域名樹形圖):cn=doubao,ou=Ops,dc=shuyun,dc=com。DN在語法上是由多個相對的標(distinguished Name ,DN)組成的,他們之間由逗號分隔。若是把DN看作對象的全路徑,那麼RDN就是其中的每一段路徑。經過DN的層次型語法結構,能夠方便地表示出條目在LDAP樹中的位置。有時在不一致引發歧義的狀況下,RDN也特指DN中最靠前的一段,而剩餘的部分稱爲父標識(Parent DN,PDN)。此處再也不舉例。RDN自己也能夠由多個值構成,好比OU=Tech+CN=doubao,dc=shuyun,dc=com中的RDN爲OU=Tech+CN=doubao,由2個值OU=Tech和CN=doubao組成,他們之間由加好隔開。spa

  若是DN中含有一些特殊字符,好比:,=+<>;\",他們須要轉轉義符(\)來幫助表述。設計



1.三、屬性(Attribute)3d

  每一個條目均可以有不少屬性(Attribute),好比常見的人都有姓名、地址、電話等屬性。每一個屬性都有名稱及對應的值,屬性值能夠有單個、多個。好比你有多個電話。orm

  LDAP爲人員組織機構中常見的對象都設計了屬性(好比commonName,surname)。下面有一些經常使用的別名(表1-3-1)


屬性 別名 語法 描述 值(舉例)
commonName cn Directory String 姓名 doubao
surname sn Directory String Chen
organizationalUnitName ou Directory String 單位(部門)名稱 Tech
organization o Directory String 組織(公司)名稱 shuyun
telephoneNumber
Telephone Number 電話號碼 110
owner

DN 該條目的擁有者 cn=doubao,ou=ops,dc=shuyun
jpegPhoto
Binary JPEG照片 ..



1.四、屬性類型(AttributeType)

  每一個屬性都有惟一的屬性類型(AttributeType),屬性類型約定屬性值的數據格式和語法類型(Syntax)。好比,屬性cellPhone的類型爲telephoneNumber,它規定了電話號碼是由數字組成的,其中容許插入一些分隔符,如鏈接符、括號、空格等。

  屬性類型也約定了屬性值是否能夠有多少個,多值屬性類型也可使人員信息的組織變得更加靈活並接近現實狀況,好比:人員的手機、地址、郵箱等屬性均可以有多個值。這樣,用ldap組織的信息會比簡單的表結構更加理想。

  類型也規定了屬性查詢時的匹配規則、排序順序、大小寫敏感等。



1.五、對象類(ObjectClass)

  對象類(ObjectClass)是屬性的集合,LDAP預想了不少人員組織機構中常見的對象,並將其封裝成對象類。好比人員(person)含有姓(sn)、名(cn)、電話(telephoneNumber)、密碼(userPassword)等屬性,單位職工(organizationalPerson)是人員(person)的繼承類,除了上述屬性以外還含有職務(title)、郵政編碼(postalCode)、通訊地址(postalAddress)等屬性。

  經過對象類能夠方便的定義條目類型。每一個條目能夠直接繼承多個對象類,這樣就繼承了各類屬性。若是2個對象類中有相同的屬性,則條目繼承後只會保留1個屬性。對象類同時也規定了那些屬性是基本信息,必須含有(Must 活Required,必要屬性):哪些屬性是擴展信息,能夠含有(May或Optional,可選屬性)。

  對象類有三種類型:結構類型(Structural)、抽象類型(Abstract)和輔助類型(Auxiliary)。結構類型是最基本的類型,它規定了對象屍體的基本屬性,每一個條目屬於且僅屬於一個結構型對象類。抽象類型能夠是結構類型或其餘抽象類型父類,它公國將對象屬性中共性的部分組織在一塊兒,稱爲其餘類的模板,條目不能直接集成抽象型對象類。輔助類型規定了對象實體的擴展屬性。雖然每一個條米只屬於一個結構型對象類,但能夠同時屬於多個輔助型對象類。

  對象類自己是能夠相互繼承的,因此對象類的根類是top抽象型對象類。以經常使用的人員類型爲例,他們的繼承關係如圖1-5-1:

wKioL1PHmHLycKa4AADp74iLi5M845.jpg

圖1-5-1

 若是將其中一支 top-->person-->organizationalPerson-->inetOrgPerson的必要屬性和可選屬性列表(表1-5-2),就會發現這種設計仍是很是合理的。咱們能夠從任何一個對象派生出本身的對象類,好比organizationalPerson派生出職工(employee)對象類,那麼它能夠含有工號(employeeNumber)、工種(employeeType)等屬性。注意,對象類繼承的時候會把屬性是必須(Must)仍是可選(May)的特性也一併繼承。也就是說person有cn和sn兩個Must屬性,organizationalPerson和inetOrgPerson因爲直接或間接繼承了person,也會有這兩個Must屬性。

表1-5-2

對象類 必要屬性(Required) 可選屬性(Optional)
top objectClass
person
cn description seeAlso telephoneNumber
sn userPassword

organizationalPerson
destinationIndicator facsimileTelephoneNumber internationalISDNNumber
1 ou physicalDeliveryOfficeName
postalAddress postalCode postOfficeBox
preferredDeliveryMethod registeredAddress st
street teletexTerminalIdentifier telexNumber
title x121Address



對象類 必要屬性(Required) 可選屬性(Optional)
inetOrgPerson
audio businessCategory carLicense
departmentNumber displayName employNumber
employeeType givenName homePhone
homePostalAddress initals jpegPhoto
labeledURL mail manager
mobile o pager
photo preferredLanguage roomNumber
secretary uid userCertificate
userOKCS12 userSMIMECertificate x500UniqueIdentifier




1.六、模式(Schema)

  對象類(ObjectClass)、屬性類型(AttributeType)、語法(Syntax)分別約定了條目、屬性、值,他們之間的關係以下圖所示。因此這些構成了模式(Schema),模式中的每個元素都有惟一的OID編號,如2.5.4.41.條目數據在導入時一般須要接受模式檢查,它確保了目錄中全部的條目數據結構都是一致的。

wKiom1PHoRbxZBZ-AAECq9r2G9Y162.jpg

相關文章
相關標籤/搜索