动态对象
在 Windows Server 2003 及更高版本的 Windows 中,Active Directory 域服务支持将动态条目存储在目录中。 动态条目是目录中具有关联生存时间 (TTL) 值的对象。 创建条目时,将设置条目的 TTL。 会自动递减生存时间,当该时间已过时,动态条目将消失。 可以通过刷新(修改)TTL 值,客户端将让动态条目可保持比当前剩余生命周期长。 在目录中存储动态数据的客户端必须定期刷新该数据,以防止数据消失。
许多应用程序和服务使用 LDAP 存储和访问 Active Directory 服务器中相对静态和全局有趣的数据,也更愿意继续使用 LDAP 访问来满足其动态数据需求。 此外,对于某些应用程序,可能需要卸载 DS 中垃圾回收对象的任务,这些对象对目录服务具有有限使用寿命。 应用程序目录分区(能够控制副本放置)和每个对象 TTL 一起可在Active Directory 域服务中托管动态数据,从而允许 LDAP 访问它。
将在动态条目使用的基 AD 架构中定义名为 dynamicObject 的新辅助对象类,其中 OID = 1.3.6.1.4.1.1466.101.119.2。 此辅助类包含名为 entryTTL 的属性,其中 OID = 1.3.6.1.4.1.1466.101.119.3 用作 system-may-contain 属性。 此属性的值是相应目录条目在从目录中消失之前将继续存在的“以秒为单位的时间”。 如果客户端在创建对象时未显式提供此属性的值,则 DS 会提供稍后指定的默认值。
将在根 DSE 对象的 supportedExtension 属性中定义和发布 OID = 1.3.6.1.4.1.1466.101.119.1 的新扩展 LDAP 操作,用于目录中动态条目的客户端刷新。
在实际实现中,entryTTL 是一个构造的属性。 在名为 ms-DS-Entry-Time-To-Live 的仅系统属性中可以销毁对象时,实际对象过期时间存储为绝对时间。
所有动态对象都具有以下限制:
- 由于 TTL 过期而删除的动态对象不会留下逻辑删除。
- 保存动态对象副本的所有 DC 都必须在 Windows Server 2003 上运行。
- 除配置分区和架构分区之外,所有分区都支持具有 TTL 值的动态条目。
- Active Directory 域服务不会发布根 DSE 对象的可选 dynamicSubtrees 属性,如 RFC 2589 中所述。
- 处理 search、compare、add、delete、modify 和 modifyDN 操作时,动态条目的处理方式与非动态条目类似。
- 无法将静态条目更改为动态条目,反之亦然。
- 无法将非动态条目添加到动态条目作为附属项。