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