3.4.2. 定义新对象类的策略
您可以通过以下两种方式创建新对象类:
- 创建新对象类,一个用于可以添加属性的每个对象类结构。
- 创建一个对象类,它支持为目录创建的所有自定义属性。您可以通过将对象类定义为辅助对象类来创建此对象类。
您可以混合使用这两种方法。例如,您要创建属性 exampleDateOfBirth,examplePreferredOS,exampleBuildingFloor, 和 exampleVicePresident。简单的解决方案是创建多个对象类,允许其中的一些部分属性。
-
examplePerson对象类允许exampleDateOfBirth和examplePreferredOS。examplePerson的父对象是inetOrgPerson。 -
exampleOrganization对象类允许示例BuildingFloor和exampleViceP located。exampleOrganization 的父对象是机构对象类。
新对象类以 LDAPv3 模式格式出现,如下所示:
objectclasses: ( 2.16.840.1.117370.999.1.2.3 NAME 'examplePerson' DESC 'Example Person Object Class'
SUP inetorgPerson MAY (exampleDateOfBirth $ examplePreferredOS) )
objectclasses: ( 2.16.840.1.117370.999.1.2.4 NAME 'exampleOrganization' DESC 'Organization Object Class'
SUP organization MAY (exampleBuildingFloor $ exampleVicePresident) )
或者,您可以创建一个单一对象类来允许所有这些属性,并将其与需要它们的任何条目一起使用。单个对象类显示如下:
objectclasses: (2.16.840.1.117370.999.1.2.5 NAME 'exampleEntry' DESC 'Standard Entry Object Class' SUP top
AUXILIARY MAY (exampleDateOfBirth $ examplePreferredOS $ exampleBuildingFloor $ exampleVicePresident) )
新的 exampleEntry 对象类标记为 AUXILIARY,这意味着它可用于任何条目,而不考虑其结构对象类。
您可以根据机构环境来组织新对象类。决定新对象类的实现时请考虑以下几点:
- 如果架构中添加了超过两个或三个对象类,则必须使用单个对象类。
- 多个对象类需要严格的数据设计。严格数据设计强制注意对象类结构,其中放置每个数据的对象类结构很有用或繁琐。
-
当数据可应用于多个对象类(如人员和资产条目)时,您可以使用单个对象类使用数据。例如,您可以在个人和组条目上设置自定义
preferredOS属性。单个对象类可以在这两类条目上允许此属性。 -
您必须避免新对象类所需的属性。当您指定
require而不是允许新对象类中的属性时,它可以使架构变得不灵活。在定义了新对象类后,决定其允许和需要哪些属性,以及它继承属性的对象类。