链接属性 (AD DS)
链接属性是一对属性,其中系统根据在整个林中的另一个属性(正向链接)上设置的值来计算一个属性的值(后向链接)。 任何对象实例上的反向链接值都由在相应的正向链接中设置了对象 DN 的所有对象的 DN 组成。 例如,“Manager”和“Reports”是一对链接属性,其中 Manager 是正向链接,Reports 是反向链接。 现在假设 Bill 是 Joe 的经理。 如果将 Bill 的用户对象的 DN 存储在 Joe 用户对象的“Manager”属性中,则 Joe 用户对象的 DN 将显示在 Bill 用户对象的“Reports”属性中。
正向链接/反向链接对由两个 attributeSchema 定义的 linkID 值标识。 正向链接的 linkID 是一个偶正非零值,关联的反向链接的 linkID 为正向 linkID + 1。 例如,“Manager”的 linkID 为 42,“Reports”的 linkID 为 43。
以下是定义一对新的链接属性的指导原则列表:
- linkID 值在所有 attributeSchema 对象中必须是唯一的。 为避免冲突,应按照获取链接 ID 主题中的说明自动生成 linkID。
- 反向链接必须具有相应的正向链接,即正向链接必须存在,才能创建相应的反向链接属性。
- 反向链接始终是一个多值属性。 正向链接可以是单值链接,也可以是多值链接。 当存在多对多关系时,请使用多值正向链接。
- 正向链接的 attributeSchema 值必须是 2.5.5.1、2.5.5.7 或 2.5.5.14。 这些值对应于包含可分辨名称的语法,例如 Object(DS-DN) 语法。
- 反向链接的 attributeSchema 值必须是 2.5.5.1,这是 Object(DS-DN) 语法。
- 按照约定,反向链接属性将添加到 top 抽象类的 mayContain 值。 这使得可以从任何类的对象中读取反向链接属性,因为它们实际上不是与对象一起存储的,而是基于正向链接值计算的。