OpenLdap21Administrators Guide.docx
- 文档编号:11209048
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:11
- 大小:20.81KB
OpenLdap21Administrators Guide.docx
《OpenLdap21Administrators Guide.docx》由会员分享,可在线阅读,更多相关《OpenLdap21Administrators Guide.docx(11页珍藏版)》请在冰豆网上搜索。
OpenLdap21AdministratorsGuide
本文主要介绍openLdap中schema文件,
本章是根据OpenLdap2.1Administrator‘sGuide这本书的第八章翻译的如有不周,还请见谅:
模式规范
本章介绍了如何扩展slapd的用户模式由(8)使用。
第一部分,分布式架构文件的细节可选模式的分布提供的定义以及在哪里获得其他定义。
第二部分,扩展架构,详细介绍了如何定义新的模式的项目。
本章不讨论如何延长的slapd(8)作为这需要修改源代码的系统架构。
系统架构包括所有的业务属性类型或对象类,允许或要求操作属性(直接或间接)。
8.1。
分布式架构文件
OpenLDAP是分布式供您使用架构规范。
每一组被定义在一个文件中包含适当的(使用include指令)在您的slapd.conf(5)文件。
这些架构文件通常安装在/usr/local/etc/openldap目录/schema目录。
表8.1:
提供的架构规格
文件
说明
core.schema
OpenLDAP的核心(必须)
cosine.schema
余弦和互联网X.500(有用)
inetorgperson.schema
InetOrgPerson的(有用)
misc.schema
什锦(实验)
nis.schema
网络信息服务(FYI)
openldap.schema
OpenLDAP项目(实验)
要使用这些模式的任何文件,你只需要包括在全局定义部分你的slapd.conf(5)文件所需的文件。
例如:
#includeschema
include/usr/local/etc/openldap/schema/core.schema
include/usr/local/etc/openldap/schema/cosine.schema
include/usr/local/etc/openldap/schema/inetorgperson.schema
其他文件可能可用。
请参考OpenLDAP的常见问题(http:
//www.openldap.org/faq/)。
注意:
您不应该修改提供的文件中定义的架构的任何项目。
8.2。
扩展模式
通过的slapd(8)使用可扩展的架构,以支持额外的语法,匹配规则,属性类型和对象类。
本章详细介绍如何添加用户应用程序的属性类型和对象类的语法和使用的slapd已经支持的匹配规则。
slapd的,也可以扩展到支持其他的语法,
匹配规则和系统架构,但是这需要一些编程,因此这里不讨论
有五个步骤,以确定新的模式:
1.获取对象的标识符
2.选择一个名称前缀
3.创建本地模式文件
4.定义自定义属性类型(如有必要)
5.定义自定义对象类
8.2.1。
对象标识符
每个架构元素是由一个全局唯一的对象标识符(OID)。
OID还用于识别的其他对象。
它们通常存在于由ASN.1描述的协议。
特别是,他们大量使用简单网络管理协议(SNMP)。
由于OID是分层次的,您的组织可以获取一个OID,并根据需要进行分支。
例如,如果您的组织被分配OID1.1。
你可以支树如下:
表8.2:
例OID层次
OID
转让
1.1
组织的OID
1.1.1
SNMP元素
1.1.2
LDAP元素
1.1.2.1
AttributeTypes
1.1.2.1.1
myAttribute
1.1.2.2
对象类
1.1.2.2.1
myObjectClass
你是,当然,自由设计的层次结构适合在你的组织的OID组织需要。
不管是什么层次你选择,你应该保持分配您的注册表。
这可以是一个简单的平面文件或更多的东西,如OpenLDAP的OID注册(http:
//www.openldap.org/faq/index.cgi?
file=197)复杂。
如需对象Identifers信息(和上市服务)看到http:
//www.alvestrand.no/harald/objectid/。
在任何情况下你应该劫持OID命名空间!
为了获得不花钱注册的OID,申请OID根据互联网编号分配机构(IANA)保持民营企业弧。
任何民营企业(组织)可要求根据本弧分配OID。
只需填写在http:
//www.iana.org/cgi-bin/enterprise.pl和你正式OID的IANA表格将被发送到你通常在几天内。
你的基地OID会像1.3.6.1.4.1.X的东西,其中X是一个整数。
注意:
不要让“MIB/SNMP”关于IANA页声明迷惑你。
获得使用这种形式的OID可以用于任何包括确定LDAP模式元素的目的。
另外,OID名称空间可能从一个国家机构(如ANSI,BSI)获得。
8.2.2。
名称前缀
除了分配一个唯一的对象标识符,每个架构元素,你应该提供一个至少为每个元素的文本名称。
该名称应该是描述性,不容易与其他冲突模式元素名称。
特别是,您选择的任何名称,不应冲突与现在或将来的标准曲目名称。
为了减少(但不是消除)潜在的名称冲突,则本公约不规范用几个字母前缀的名称进行本地化轨道的变化,以您的组织。
较小的组织,时间越长你的前缀应该的。
在下面的例子,我们选择了一个简短的前缀'我'(以节省空间)。
这么短的前缀只会是一个非常大的,适当的全球性组织。
一般来说,我们建议像“deFirm”(德国公司)或“comExample”(与相关组织有关联的元素)的东西。
8.2.3。
本地模式文件
该对象类和attributeTypes配置文件指令可用于定义在目录条目模式规则。
这是习惯性地创建一个文件来包含您的自定义架构项目的定义。
我们建议您创建一个文件在/usr/本地/etc/openldap目录/模式/local.schemalocal.schema,然后包括在您的slapd.conf(5)文件这个文件后,立即其他架构包括指令。
#includeschema
include/usr/local/etc/openldap/schema/core.schema
include/usr/local/etc/openldap/schema/cosine.schema
include/usr/local/etc/openldap/schema/inetorgperson.schema
#includelocalschema
include/usr/local/etc/openldap/schema/local.schema
8.2.4。
属性类型说明
该attributetype指令用于定义一个新的属性类型。
该指令使用相同的属性类型描述(如RFC2252定义)的属性,在子模式子项,如发现attributeTypes使用:
attributetype
在属性类型描述是由下面的BNF定义:
AttributeTypeDescription="("whsp
numericoidwhsp;AttributeTypeidentifier
["NAME"qdescrs];nameusedinAttributeType
["DESC"qdstring];description
["OBSOLETE"whsp]
["SUP"woid];derivedfromthisother
;AttributeType
["EQUALITY"woid;MatchingRulename
["ORDERING"woid;MatchingRulename
["SUBSTR"woid];MatchingRulename
["SYNTAX"whspnoidlenwhsp];SyntaxOID
["SINGLE-VALUE"whsp];defaultmulti-valued
["COLLECTIVE"whsp];defaultnotcollective
["NO-USER-MODIFICATION"whsp];defaultusermodifiable
["USAGE"whspAttributeUsage];defaultuserApplications
whsp")"
AttributeUsage=
"userApplications"/
"directoryOperation"/
"distributedOperation"/;DSA-shared
"dSAOperation";DSA-specific,valuedependsonserver
其中whsp是空格(''),numericoid是点分十进制形式全局唯一的OID(例如1.1.0),qdescrs是一个或多个名称,woid可以是名称或OID后面可选的长度说明符(如:
{10})。
例如,属性类型名称和CNcore.schema定义为:
attributeType(2.5.4.41NAME'name'
DESC'name(s)associatedwiththeobject'
EQUALITYcaseIgnoreMatch
SUBSTRcaseIgnoreSubstringsMatch
SYNTAX1.3.6.1.4.1.1466.115.121.1.15{32768})
attributeType(2.5.4.3NAME('cn''commonName')
DESC'commonname(s)assciatedwiththeobject'
SUPname)
请注意,每个定义属性的OID,提供了一个简短的名称,简要说明。
每个名字的OID的别名。
的slapd(8)返回第一个上市的名字的时候返回结果。
第一个属性,名称,持有directoryString值(UTF-8编码的Unicode)语法。
它的语法是指定的OID(1.3.6.1.4.1.1466.115.121.1.15标识directoryString语法)。
一个长度为32768建议指定。
服务器应该支持这个长度值,但是可以支持更长的值的字段不指定大小的限制,所以是在服务器上(如slapd的)不施加大小限制被忽略。
此外,平等和子串匹配使用的情况下忽略规则。
下面是表列出常用的语法和匹配规则(OpenLDAP的支持这些以及更多)。
表8.3:
常用语法
Name
OID
Description
boolean
1.3.6.1.4.1.1466.115.121.1.7
Boolean
distinguishedName
1.3.6.1.4.1.1466.115.121.1.12
DN
directoryString
1.3.6.1.4.1.1466.115.121.1.15
UTF-8string
IA5String
1.3.6.1.4.1.1466.115.121.1.26
ASCIIstring
Integer
1.3.6.1.4.1.1466.115.121.1.27
integer
NameandOptionalUID
1.3.6.1.4.1.1466.115.121.1.34
DNplusUID
NumericString
1.3.6.1.4.1.1466.115.121.1.36
numericstring
OID
1.3.6.1.4.1.1466.115.121.1.38
objectidentifier
OctetString
1.3.6.1.4.1.1466.115.121.1.40
arbitaryoctets
PrintableString
1.3.6.1.4.1.1466.115.121.1.44
printablestring
表8.4:
常用的匹配规则
Table8.4:
CommonlyUsedMatchingRules
Name
Type
Description
booleanMatch
equality
boolean
octetStringMatch
equality
octetstring
objectIdentiferMatch
equality
OID
distinguishedNameMatch
equality
DN
uniqueMemberMatch
equality
NamewithoptionalUID
numericStringMatch
equality
numerical
numericStringOrderingMatch
ordering
numerical
numericStringSubstringsMatch
substrings
numerical
caseIgnoreMatch
equality
caseinsensitive,spaceinsensitive
caseIgnoreOrderingMatch
ordering
caseinsensitive,spaceinsensitive
caseIgnoreSubstringsMatch
substrings
caseinsensitive,spaceinsensitive
caseExactMatch
equality
casesensitive,spaceinsensitive
caseExactOrderingMatch
ordering
casesensitive,spaceinsensitive
caseExactSubstringsMatch
substrings
casesensitive,spaceinsensitive
caseIgnoreIA5Match
equality
caseinsensitive,spaceinsensitive
caseIgnoreIA5OrderingMatch
ordering
caseinsensitive,spaceinsensitive
caseIgnoreIA5SubstringsMatch
substrings
caseinsensitive,spaceinsensitive
caseExactIA5Match
equality
casesensitive,spaceinsensitive
caseExactIA5OrderingMatch
ordering
casesensitive,spaceinsensitive
caseExactIA5SubstringsMatch
substrings
casesensitive,spaceinsensitive
第二个属性,CN,是名亚型,因此它继承了语法,匹配规则和名称的使用。
的commonName是另一种名称。
无论属性限制为单个值。
这两个都是为了用户使用的应用程序。
无论是已经过时,也不集体。
下面的小节提供了几个例子
8.2.4.1。
myUniqueName
许多组织保持为每个用户一个唯一的名称。
虽然人们可以使用的displayName(RFC2798),这个属性是真正地被用户,而不是组织的控制。
我们可以只复制inetorgperson.schema的显示名称的定义和更换OID,名称和描述,例如:
,
attributetype(1.1.2.1.1NAME'myUniqueName'
DESC'uniquenamewithmyorganization'
EQUALITYcaseIgnoreMatch
SUBSTRcaseIgnoreSubstringsMatch
SYNTAX1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE)
但是,如果我们希望这个名称将在名称中包含断言[例如(名称=*简*)],该属性可交替作为一个名称,如子类型的定义:
attributetype(1.1.2.1.1NAME'myUniqueName'
DESC'uniquenamewithmyorganization'
SUPname)
8.2.4.2。
myPhoto
许多组织保持每个用户的每一个照片。
阿myPhoto属性类型可以定义为持有一张照片。
当然,人们可以使用只用jpegPhoto属性(RFC2798)(或亚型)来保存照片。
但是,你只能这样做,如果照片中的JPEG文件交换格式。
另外,属性类型,它使用的字节串语法可以定义,例如:
attributetype(1.1.2.1.2NAME'myPhoto'
DESC'aphoto(applicationdefinedformat)'
SYNTAX1.3.6.1.4.1.1466.115.121.1.40
SINGLE-VALUE)
在这种情况下,语法不指定格式的照片。
它的假设(也许不正确)的所有应用程序访问这个属性的值的处理上同意。
如果你想支持多种照片格式,你可以定义一个单独的格式为每个属性类型,前缀类型信息的一些照片,或用ASN.1描述的价值和使用;二进制传输选项。
另一种方法是为属性举行URI指向照片。
这种模式可以在labeledURI(RFC2079)的属性或简单地创建一个子类型,例如:
attributetype(1.1.2.1.3NAME'myPhotoURI'
DESC'URIandoptionallabelreferringtoaphoto'
SUPlabeledURI)
8.2.5。
对象类规范
该对象类指令用于定义一个新的对象类。
该指令使用相同的对象类描述(如RFC2252定义)的属性,在子模式子项,如发现使用的对象类:
objectclass
在对象类描述是由下列BNF定义:
ObjectClassDescription="("whsp
numericoidwhsp;ObjectClassidentifier
["NAME"qdescrs]
["DESC"qdstring]
["OBSOLETE"whsp]
["SUP"oids];SuperiorObjectClasses
[("ABSTRACT"/"STRUCTURAL"/"AUXILIARY")whsp]
;defaultstructural
["MUST"oids];AttributeTypes
["MAY"oids];AttributeTypes
whsp")"
其中whsp是空格(''),numericoid是一个以数字形式全局唯一的OID(例如1.1.0),qdescrs是一个或多个名称,OID的是一个或多个名称和/或的OID。
8.2.5.1。
myPhotoObject
如果您的组织想有一个私人的结构对象类实例化的用户,你可以继承一个现有Person类,如inetOrgPerson(RFC2798),并添加任何你想要的附加属性。
objectclass(1.1.2.2.2NAME'myPerson'
DESC'myperson'
SUPinetOrgPerson
MUST(myUniqueName$givenName)
MAYmyPhoto)
对象类继承了inetOrgPerson的要求/允许属性类型,但需要myUniqueName和givenName和允许myPhoto。
8.2.6。
OID宏
为了方便管理和使用的OID,slapd的(8)支持对象标识符宏。
该objectIdentifier指令用于等同与OID宏(名称)。
该OID有可能是来自先前定义的OID宏。
slapd.conf的(5)语法是:
objectIdentifier
下面演示了OID宏及其定义架构中的元素使用集定义:
objectIdentifiermyOID1.1
objectIdentifiermySNMPmyOID:
1
objectIdentifiermyLDAPmyOID:
2
objectIdentifiermyAttributeTypemyLDAP:
1
objectIdentifiermyObjectClassmyLDAP:
2
attributetype(myAttributeType:
3NAME'myPhotoURI'
DESC'URIandoptionallabelreferringtoaphoto'
SUPlabeledURI)
objectclass(myObjectClass:
1NAME'myPhotoObject'
DESC'mixinmyPhoto'
AUXILIARY
MAYmyPhoto)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OpenLdap21Administrators Guide