LDAP Schema的概念和基本要素

2021-08-30 01:23:49 字數 4458 閱讀 2452

schema是ldap的乙個重要組成部分,類似於資料庫的模式定義,ldap的schema定義了ldap目錄所應遵循的結構和規則,比如乙個 objectclass會有哪些屬性,這些屬性又是什麼結構等等,schema給ldap伺服器提供了ldap目錄中類別,屬性等資訊的識別方式,讓這些可以被ldap伺服器識別。

在ldap的schema中,有四個重要的元素:

1. objectclass

objectclass定義了乙個類別,這個類別會被不同的目錄(在ldap中就是乙個entry)用到,它說明了該目錄應該有哪些屬性,哪些屬性是必須的,哪些又是可選的。乙個objectclass的定義包括名稱(name),說明(desc),型別(structural或auxilary ,表示是結構型的還是輔助型的),必須屬性(must),可選屬性(may)等資訊。

在bap產品中,有下面幾種類別

# galaxytitle 

objectclass ( 2.16.840.1.153730.3.4.2

name 'galaxytitle'

desc 'galaxytitle use to manage title'

sup top

structural

must ( uid )

may (

sortid )

) # galaxypost

objectclass ( 2.16.840.1.153730.3.4.32

name 'galaxypost'

desc 'galaxypost use to manage post'

sup top

structural

must ( uid )

may (

sortid $ type )

) # galaxyduty

objectclass ( 2.16.840.1.153730.3.4.22

name 'galaxyduty'

desc 'galaxyduty use to manage duty'

sup top

structural

must ( dutyuid )

may (

sortid )

) # galaxygroup

objectclass ( 2.16.840.1.153730.3.2.12

name 'galaxygroup'

desc 'galaxygroup use to manage group'

sup top

structural

must ( uid )

may (

sysid $ employeeids $ sortid $ grouptype $ searchcondition $ groupmanager $ telephone $

email $ gfax $ others1 $ others2 $

others3 $ uniquemember $ searchconditionxml)

) # galaxypeople

objectclass ( 2.16.840.1.153730.3.2.22

name 'galaxypeople'

desc 'galaxypeople use to manage people'

sup inetorgperson

structural

may (

otherdepartmentnumber $ sortid $ ifactivated $ peoplelevel $ leadermember $ leaderfilter $ title $ post $ globalsortid $ virtualaccount

))

# galaxyorganization

objectclass ( 2.16.840.1.153730.3.2.2

name 'galaxyorganization'

desc 'galaxyorganization use to manage dep'

sup top

structural

must ( uid )

may (

sysid $ employeeids $ sortid $ depmanager $ telephone $

email $ gfax $ others1 $ others2 $

others3 $ depmanagerfilter $ title $ post)

) # galaxycontainer

objectclass ( 2.16.840.1.153730.3.2.16

name 'galaxycontainer'

desc 'a container,can fill with people,org,group...'

sup top

structural

must ( cn )

)

# galaxylevel

objectclass ( 2.16.840.1.153730.3.3.18

name 'galaxylevel'

desc 'level inof'

sup top

structural

must ( cn $ number )

)

# galaxyattofpeople

objectclass ( 2.16.840.1.153730.3.3.19

name 'galaxyattofpeople'

desc 'att name and sn'

sup top

structural

must ( sn $ cn )

)

2. attribute

attribute就是乙個上面objectclass中可能包含的屬性,對其的定義包括名稱,資料型別,單值還是多值以及匹配規則等。後面用具體的例子來說明。

3. syntax

syntax是ldap中的「語法」,其實就是ldap中會用到的資料型別和資料約束,這個語法是遵從x.500中資料約束的定義的。其定義需要有乙個id(遵從x.500)以及說明(desp)

4. matching rules

是用來指定某屬性的匹配規則,實際上就是定義乙個特殊的syntax的別名,讓ldap伺服器可以識別,並對定義的屬性進行匹配。

ldap的schema的主要元素就是這些了,下面列舉出了一些ldap規定好的或是現在比較通用的schema,一般的ldap伺服器都應該可以識別這些定義。

這就是乙個名為subschema的objectclass的定義:

(2.5.20.1 name 'subschema'  auxiliary

may ( ditstructurerules $ nameforms $ ditcontentrules $

objectclasses $ attributetypes $ matchingrules $ matchingruleuse ) )

首先是id,這裡是2.5.20.1,接著是name,auxiliary說明是輔助型,之後是可選屬性的定義,subschema中沒有定義必須屬性,如果需要定義,應該和may一樣,將屬性放在must()中並用$隔開

再來看乙個屬性定義:

( 2.5.4.3 name 'cn' sup name equality caseignorematch )

可以看到cn屬性的父屬性是name,它相等性匹配於caseignorematch(匹配原則為equality,還有如substr是字串匹配,ordering是順序匹配)

syntax定義一般都比較簡單,如:

( 1.3.6.1.4.1.1466.115.121.1.6  desc  'string' )

這個定義說明,這一串數字1.3.6.1.4.1.1466.115.121.1.5就代表了ldap中的字串,這個數字串的定義和x.500相關,包括了它的儲存方式,所佔空間大小等。

最後看看matching rule的例子,前面提到了caseignorematch,就看他的吧

( 2.5.13.2 name 'caseignorematch'

syntax 1.3.6.1.4.1.1466.115.121.1.15 )  

其實1.3.6.1.4.1.1466.115.121.1.15 就是ldap資料型別directory string的id,說明前面的cn需要等於這個資料型別才有效。

還有很多常用schema的定義都在了rfc2252中,ldap伺服器都應該支援這些基本的schema。好了,現在基本對ldap中的schema有個乙個大致的說明,可能有不到位或不妥之處,還望大家指正。

轉貼 談LDAPschema的定義

schema包含五大元件 oid,唯一名稱name,父物件sup,must屬性,may屬性。下面是乙個schema例子 xlymail ldap v3 directory schema written by hefish cz8.net attribute type definitions attr...

封基和開基的異同

封閉式 簡稱 封基 學名叫 契約型封閉式 開放式 簡稱 開基 學名叫 契約型開放式 相同點大致有 一 都是 管理公司的集合理財產品 二 都屬於面向社會公開募集 的範疇 三 都要執行 法 和規範的會計準則 四 都要按照資產淨值提取管理費 託管費 五 目前 分紅都不需要交納個人所得稅 歡迎補充 不同點有...

mysql版本概念 MySQL基本概念及基本操作

資料庫基本概念 資料庫是什麼 儲存資料的倉庫 1.列表 字典.等等 都是記憶體中的 缺點 斷電丟失 優點 速度快 2.檔案儲存 缺點 速度慢 優點 可以實現永久儲存 本質就是一套基於cs結構的 客戶端和伺服器程式,最終的資料儲存在伺服器端的磁碟中 為什麼要使用資料庫 直接使用檔案儲存帶來的問題 1....