创建服务连接点的位置

安装 Active Directory 域服务实例时,服务安装程序会在 Active Directory 域服务中创建服务连接点对象 (SCP)。 主要目标是尽量减少复制流量,并实现对象的高效管理和维护。

请注意,客户端应用程序通过在 SCP 中搜索目录查找关键字来查找 SCP。 SCP 的 keywords 属性包含在全局目录中;客户端可以搜索全局目录,以在林中查找 SCP。 因此,客户端不会影响发布 SCP 的位置。

最大程度降低复制流量

若要最大程度地减少复制流量,请在服务主机计算机的域的域分区中创建 SCP。 例如,可以将 SCP 创建为安装了服务的计算机对象的子对象。 Active Directory 域服务的域分区有时称为域命名上下文,包含特定于域的对象,例如域的用户和计算机的对象。 域分区中所有对象的完整副本都将复制到域的每个域控制器 (DC),但不会将其复制到其他域的 DC。

不要在配置分区(也称为配置命名上下文)中创建 SCP,因为对配置分区的更改会复制到林中的每个 DC。 如上所述,整个林中的客户端都可以查询全局目录,以在林中的任何位置查找 SCP,因此在配置分区中创建 SCP 不会使它们对客户端更可见;它只会生成更多复制流量。

易于管理

请考虑以下对象管理准则:

  • 放置特定于服务的对象,管理员可以使用策略和继承的访问权限来控制对这些对象的访问。
  • 将对象置于管理员可以轻松找到这些对象的位置。

满足这两个目标的良好默认位置是在每个服务实例的主计算机的计算机对象下创建 SCP 和其他特定于服务的对象。 有关详细信息,请参阅在计算机对象下发布

对于未绑定到单个主机的服务,一个很好的替代方案是为域分区中的系统容器下的服务对象创建容器。 有关详细信息,请参阅在域系统容器中发布

下图显示了域分区的默认容器层次结构的一部分。

default domain partition container hierarchy

此图显示了 Active Directory 域服务附带的默认域层次结构。 但是,许多企业创建组织单位 (OU) 容器的层次结构,以将对象类(如用户和计算机)组合在一起,以便进行管理。 然后,管理员可以将策略和可继承的访问控制条目 (ACE) 应用到 OU,以委托 OU 中对象的管理权限。 这使管理员能够高效地管理企业,但它对服务程序员而言会有一些后果:

  • 服务主机的计算机对象可能不在 Computers 容器下,如下图所示。 有关如何查找本地计算机的计算机对象的详细信息,请参阅在计算机对象下发布
  • 管理员可能会随着组织需求的变化而移动对象。 这意味着,不能依赖于固定位置的剩余对象;也就是说,服务不能依赖于对象可分辨名称保持不变。 请改用对象的 objectGUID 属性,如果移动或重命名对象,不会更改该属性。 有关详细信息,以及创建 SCP、存储其 objectGUID以及稍后检索要绑定到 SCP 的 objectGUID 的代码示例,请参阅创建和维护服务连接点
  • 所有与服务相关的标准对象类以及这些类的任何子类都是 computerorganizationalUnit 的有效子类。 如果扩展架构以定义自己的特定于服务的类,请确保 computerorganizationalUnit 类包含在可能的上级中。
  • 服务安装程序确定用于创建 SCP 的默认位置。 你可能希望允许安装服务的管理员指定备用安装路径。

不应在以下区域创建特定于服务的对象:

  • 服务不应直接在域分区的 Users 或 Computers 容器中发布对象,也不应在这些容器中创建新容器。 但是,无论计算机对象是否存储在计算机容器中,服务都可以将对象发布为计算机对象的子对象。
  • 使用 Windows 套接字注册和解析 (RnR) 或 RPC 名称服务 (RpcNs) API 播发自己的服务,请在域分区的 System 容器下的 WinsockServices 和 RpcServices 容器中创建适当的对象。 不要在这些容器中显式创建对象。 这样做不会造成直接损害,但可能会让管理员感到困惑。