定义新属性
本主题演示如何在扩展 Active Directory 架构时定义新属性。
定义新属性时,请考虑以下事项:
- 尽可能使用现有属性。
- 始终使用 cn(“通用名称”)属性作为命名(相对可分辨名称)属性。 这是大多数类的默认值,包括直接从 Top 派生的类。 cn 属性是索引属性,它将按名称更高效地搜索对象。
- 大型多值属性的存储和检索成本高昂,应避免使用。 Active Directory 域服务实现 LDAP 扩展,以启用对具有多个值的大型属性的增量读取,但并非所有 LDAP 客户端都会识别此扩展。
- 请记住,属性是平面的,即没有属性的隐含子结构。 给定类中的所有属性都应与该类的实例直接相关。
创建新属性
要创建新属性,请执行以下操作:
选择属性的名称。 名称将包含在cn 和 lDAPDisplayName 属性中。 有关为新属性撰写名称的详细信息,请参阅命名属性和类。
获取属性的对象标识符 (OID)。 有关详细信息,请参阅获取根对象标识符。
选择属性的语法。 语法由 oMSyntax 和 oMObjectClass 属性的组合确定。 有关详细信息,请参阅选择语法。
确定属性是单值还是多值属性。 isSingleValued 属性确定属性是单值还是多值属性。
确定默认情况下是否为属性编制索引。 有关详细信息,请参阅索引的属性。
确定默认情况下属性是否应位于全局目录中。 有关详细信息,请参阅全局目录中包含的属性。
如果属性是整数或字符串,请确定是否需要范围限制。 rangeLower 和 rangeUpper 属性用于指定范围限制。
如果属性为 DN 值,请确定该属性是否应与另一个属性链接。 如果链接,则必须在每个属性上适当地设置 linkID 属性;一个属性必须是向前链接,另一个属性必须是向后链接。 有关链接属性的更多信息,请参阅链接属性。
在架构容器中创建新的 attributeSchema 对象,并为该对象设置相应的属性。 可以为 attributeSchema 对象设置大量属性,但下表中列出的属性对于新属性的定义至关重要。 这些属性的值由前面的步骤确定。 有关这些属性的详细信息,请参阅属性的特征。
Attribute 注释 cn 必需。 lDAPDisplayName 必需。 adminDisplayName 必需。 attributeSyntax 必需。 oMSyntax 必需。 oMObjectClass 必需。 schemaIDGUID 必需。 attributeID 必需。 isSingleValued 必需。 searchFlags 必需。 isMemberOfPartialAttributeSet 必需。 rangeLower 可选。 rangeUpper 可选。 linkID 可选。 链接属性需要。 说明 可选。 将新的 attributeSchema 对象提交到架构容器。
必要时更新架构缓存。 有关详细信息,请参阅更新架构缓存。