3. 目录管理和操作信息
本节讨论 X.500 目录管理和操作信息模型 [X.501] 的若干方面.LDAP 实现 MAY 支持该模型的其他方面.
3.1. 子树
如 [X.501] 中所定义:
子树 (subtree) 是位于一棵树的各顶点上的对象条目和别名条目集合.
子树不包含子条目.subtree 中的前缀 sub 强调该树的基点 (或根顶点)
通常从属于 DIT 的根.
子树起始于某个顶点, 并向下延伸至某个可标识的下边界, 也可能一直
延伸到叶节点. 子树总是在某个上下文中定义, 该上下文隐式地限定子树
的边界. 例如, 定义复制区域的子树, 其顶点和下边界由命名上下文限定.
3.2. 子条目
子条目是"一种目录已知的特殊条目, 用于保存与子树或子树细化相关联的 信息" [X.501]. 子条目在目录中用于保存 [X.501] 所定义的管理和操作用途 信息. 其在 LDAP 中的用法详见 [RFC3672].
本规范中的术语"(子)条目"表示: 实现 X.500(93) 模型的服务器按照 [RFC3672] 所述的 X.500(93) 使用子条目; 其他服务器则使用属于通常与该 子条目配合使用的适当辅助类的对象条目 (例如, 对子模式子条目使用 'subschema'), 以模拟子条目. 该对象条目的 RDN SHALL 由 'cn' (commonName) 属性 [RFC4519] 的一个值构成 (因为所有子条目均以 'cn' 命名).
3.3. 'objectClass' 属性
DIT 中的每个条目都有一个 'objectClass' 属性.
( 2.5.4.0 NAME 'objectClass'
EQUALITY objectIdentifierMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
'objectIdentifierMatch' 匹配规则和 OBJECT IDENTIFIER (1.3.6.1.4.1.1466.115.121.1.38) 语法在 [RFC4517] 中定义.
'objectClass' 属性指定条目的对象类; 除其他用途外, 这些对象类与控制模式 配合使用, 以确定条目允许具有的属性. 客户端可以修改该属性的值, 但不能 删除 'objectClass' 属性.
遵循 X.500(93) 模型的服务器 SHALL 限制对该属性的修改, 以防止条目的 基本结构类发生改变. 也就是说, 不能把 'person' 改成 'country'.
创建条目或向条目添加 'objectClass' 值时, 如果指定类的所有超类尚不存在, 则它们也 SHALL 被隐式添加. 也就是说, 如果辅助类 'x-a' 是类 'x-b' 的 子类, 则向 'objectClass' 添加 'x-a' 会使 'x-b' 被隐式添加 (如果尚未 存在).
服务器 SHALL 限制对该属性的修改, 以防止删除其余 'objectClass' 值的 超类. 也就是说, 如果辅助类 'x-a' 是辅助类 'x-b' 的子类, 且 'objectClass' 属性包含 'x-a' 和 'x-b', 则试图只从 'objectClass' 属性中 删除 'x-b' 属于错误.
3.4. 操作属性
某些属性称为操作属性, 由服务器用于或维护以实现管理和操作目的. 如 [X.501] 所述: "操作属性有三种: 目录操作属性, DSA 共享操作属性和 DSA 特定操作属性".
目录操作属性用于表示目录信息模型中的操作和/或管理信息. 其中包括由 服务器维护的操作属性 (例如 'createTimestamp'), 也包括保存由用户管理 的值的操作属性 (例如 'ditContentRules').
DSA 共享操作属性用于表示 DSA 之间共享的 DSA 信息模型信息.
DSA 特定操作属性用于表示特定于该 DSA 的 DSA 信息模型信息 (但在某些 情况下, 这些信息可派生自 DSA 之间共享的信息; 例如 'namingContexts').
DSA 信息模型的操作属性详见 [X.501].
操作属性通常不可见. 除非按名称明确请求, 否则搜索结果不会返回这些属性.
并非所有操作属性都可由用户修改.
条目可以包含以下操作属性以及其他属性:
- creatorsName: 将此条目添加到目录的用户的可分辨名称;
- createTimestamp: 此条目被添加到目录的时间;
- modifiersName: 最后修改此条目的用户的可分辨名称; 以及
- modifyTimestamp: 此条目最后一次被修改的时间.
服务器 SHOULD 为 DIT 的所有条目维护 'creatorsName', 'createTimestamp', 'modifiersName' 和 'modifyTimestamp' 属性.
3.4.1. 'creatorsName'
此属性出现在使用协议添加的条目中 (例如, 使用 Add 操作). 其值为创建者 的可分辨名称.
( 2.5.18.3 NAME 'creatorsName'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )
'distinguishedNameMatch' 匹配规则和 DistinguishedName (1.3.6.1.4.1.1466.115.121.1.12) 语法在 [RFC4517] 中定义.
3.4.2. 'createTimestamp'
此属性出现在使用协议添加的条目中 (例如, 使用 Add 操作). 其值为条目 被添加的时间.
( 2.5.18.1 NAME 'createTimestamp'
EQUALITY generalizedTimeMatch
ORDERING generalizedTimeOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )
'generalizedTimeMatch' 和 'generalizedTimeOrderingMatch' 匹配规则以及 GeneralizedTime (1.3.6.1.4.1.1466.115.121.1.24) 语法在 [RFC4517] 中定义.
3.4.3. 'modifiersName'
此属性出现在使用协议修改过的条目中 (例如, 使用 Modify 操作). 其值为 最后修改者的可分辨名称.
( 2.5.18.4 NAME 'modifiersName'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )
'distinguishedNameMatch' 匹配规则和 DistinguishedName (1.3.6.1.4.1.1466.115.121.1.12) 语法在 [RFC4517] 中定义.
3.4.4. 'modifyTimestamp'
此属性出现在使用协议修改过的条目中 (例如, 使用 Modify 操作). 其值为 条目最后一次被修改的时间.
( 2.5.18.2 NAME 'modifyTimestamp'
EQUALITY generalizedTimeMatch
ORDERING generalizedTimeOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )
'generalizedTimeMatch' 和 'generalizedTimeOrderingMatch' 匹配规则以及 GeneralizedTime (1.3.6.1.4.1.1466.115.121.1.24) 语法在 [RFC4517] 中定义.
3.4.5. 'structuralObjectClass'
此属性指示条目的结构对象类.
( 2.5.21.9 NAME 'structuralObjectClass'
EQUALITY objectIdentifierMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )
'objectIdentifierMatch' 匹配规则和 OBJECT IDENTIFIER (1.3.6.1.4.1.1466.115.121.1.38) 语法在 [RFC4517] 中定义.
3.4.6. 'governingStructureRule'
此属性指示管控该条目的结构规则.
( 2.5.21.10 NAME 'governingStructureRule'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )
'integerMatch' 匹配规则和 INTEGER (1.3.6.1.4.1.1466.115.121.1.27) 语法在 [RFC4517] 中定义.