3.3 eDirectory 准则

eDirectory 是存储通过 Identity Manager 解决方案同步的对象的身份库。以下部分包含帮助您规划 eDirectory 部署的准则。

3.3.1 eDirectory 中的 Identity Manager 对象

以下列表指出 eDirectory 中存储的主要 Identity Manager 对象以及这些对象如何彼此互相关联。安装 Identity Manager 过程中不会创建任何对象。Identity Manager 对象在配置 Identity Manager 解决方案过程中创建。

  • 驱动程序集: 驱动程序集是保存 Identity Manager 驱动程序和库对象的容器。在任何时候,一台服务器上只能有一个驱动程序集处于活动状态。但可能有多台服务器与一个驱动程序集关联。且一个驱动程序也可以同时与多台服务器关联。但此驱动程序在任何时候只应在一台服务器上运行。此驱动程序在其他服务器上应处于禁用状态。与驱动程序集关联的任何服务器上都必须已安装元目录服务器。

  • 库: 库对象是可从多个位置参照的常用策略的储存库。库存储在驱动程序集中。可将策略放置在库中,以便驱动程序集中的每个驱动程序均可参照它。

  • 驱动程序: 驱动程序连接应用程序与身份库。它还允许在系统间进行数据同步和共享。驱动程序存储在驱动程序集中。

  • 作业: 作业就是将重现的任务自动化。例如,某个作业可以将系统配置为在特定一天禁用帐户,或启动工作流程以请求延长某用户对公司资源的访问时限。作业存储在驱动程序集中。

3.3.2 在服务器上复制 Identity Manager 需要的对象

如果 Identity Manager 环境需要多个服务器以运行多个 Identity Manager 驱动程序,则计划应确保在运行这些 Identity Manager 驱动程序的服务器上复制了某些 eDirectory 对象。

只要已过滤复本中包括驱动程序需要读取或同步的所有对象和特性,就可以使用这些复本。

请记住,必须为 Identity Manager 驱动程序对象授予对任何要同步的对象的足够 eDirectory 权限,方法是通过显式授权,或者使驱动程序对象的安全性等效于具有所需权限的对象。

运行 Identity Manager 驱动程序的 eDirectory 服务器(如果使用 Remote Loader,则是驱动程序参照的 eDirectory 服务器)必须保存下列主复本或读/写复本:

  • 该服务器的驱动程序集对象。

    运行 Identity Manager 的每个服务器都应该具有一个驱动程序集对象。 除非有特定的需求,否则不要将多个服务器与同一个驱动程序集对象关联。

    注:创建驱动程序集对象时,默认设置是创建独立的分区。Novell 建议在驱动程序集对象上创建独立的分区。 要使 Identity Manager 正常运行,服务器需要保存驱动程序集对象的完整复本。 如果服务器具有驱动程序集对象的安装位置的完整复本,则不需要分区。

  • 该服务器的服务器对象。

    服务器对象是必需的,因为驱动程序使用它为对象生成密钥对。对于 Remote Loader 鉴定来说,它也至关重要。

  • 需要同步驱动程序的该实例的对象。

    除非这些对象的复本与驱动程序位于同一台服务器上,否则驱动程序不能同步对象。 事实上,Identity Manager 驱动程序将同步在服务器上复制的所有容器中的对象,除非您创建用于范围过滤的规则以另行指定。

    例如,如果需要驱动程序同步所有用户对象,最简单的方法是使用驱动程序的一个实例,该驱动程序位于保存所有用户的主复本或读/写复本的服务器上。

    但是,许多环境都没有包含所有用户复本的单台服务器。 相反,完整用户集分布在多台服务器上。 在这种情况下,有三种选择:

    • 将用户聚合到单台服务器: 可通过向现有服务器添加复本来创建保存所有用户的单台服务器。 如果需要,只要必需的用户对象和特性是已过滤复本的一部分,就可以使用已过滤复本减少 eDirectory 数据库的大小。

    • 在启用范围过滤的情况下,使用多台服务器上的驱动程序的多个实例: 如果不希望将用户聚合到单台服务器,则需要确定由哪个服务器集保存所有用户,同时在其中的每个服务器上设置 Identity Manager 驱动程序的一个实例。

      为防止驱动程序的不同实例尝试同步相同的用户,您将需要使用范围过滤来定义每个驱动程序实例应该同步的用户。范围过滤表示向每个驱动程序添加规则,以将驱动程序的管理范围限制到特定的容器。 请参见使用“范围过滤”管理不同服务器上的用户

    • 在没有范围过滤的情况下,使用多台服务器上的驱动程序的多个实例: 如果要在不同服务器上运行驱动程序的多个实例且不使用已过滤复本,则需要对不同的驱动程序实例定义策略,以使驱动程序能够处理同一 Identity Vault 中的不同对象集。

  • 创建用户时需要驱动程序使用的模板对象(如果选择使用模板)。

    Identity Manager 驱动程序不要求指定用于创建用户的 eDirectory 模板对象。 但是,如果指定在 eDirectory 中创建用户时驱动程序应使用模板,则必须在运行驱动程序的服务器上复制模板对象。

  • Identity Manager 驱动程序管理用户时需要使用的任何容器。

    例如,如果创建了一个名称为“非活动用户”的树枝以保存禁用的用户帐户,则必须使运行驱动程序的服务器上具有该树枝的主复本或读/写复本(最好是主复本)。

  • 驱动程序需要参照的其他任何对象(例如,Avaya PBX 驱动程序的工作指令对象)。

    如果驱动程序只是读取而不是更改其他对象,则服务器上的这些对象的复本可以是只读复本。

3.3.3 使用“范围过滤”管理不同服务器上的用户

“范围过滤”表示向每个驱动程序添加规则,以将驱动程序的操作范围限制到特定的容器。 在以下两种情况下,可能需要使用范围过滤:

  • 希望驱动程序只同步特定容器中的用户。

    默认情况下,Identity Manager 驱动程序将同步运行该驱动程序的服务器上复制的所有容器中的对象。 要缩小该范围,必须创建范围过滤规则。

  • 希望 Identity Manager 驱动程序同步所有用户,但不希望在同一服务器上复制所有用户。

    要同步所有用户且不将其复制到单台服务器上,则需要确定由哪个服务器集保存所有用户,然后在其中的每台服务器上创建 Identity Manager 驱动程序的实例。 为防止驱动程序的两个实例尝试与相同的用户同步,您将需要使用“范围过滤”来定义驱动程序的每个实例应该同步的用户。

    注:即使服务器的复本当前未重叠,也应该使用范围过滤。 以后,服务器上可能会添加复本,因而可能无意中产生重叠。 如果实施了范围过滤,Identity Manager 驱动程序就不会尝试同步相同的用户,即使以后向服务器添加复本,也是如此。

下面给出了如何使用范围过滤的示例:

下图显示了一个 Identity Vault,它带有三个保存用户的容器:市场营销、财务和开发。同时它还显示保存驱动程序集的身份管理容器。其中每个容器都是一个独立的分区。

图 3-4 范围过滤的示例树

在此示例中,Identity manager 管理员有两个 Identity Vault 服务器:服务器 A 和服务器 B,如图 3-5 所示。两个服务器都不包含所有用户的拷贝。每个服务器包含三个分区中的两个,因此服务器保存项目的范围重叠。

管理员希望通过 GroupWise 驱动程序同步树中的所有用户,但是不希望将这些用户的复本聚合到单台服务器。他选择使用 GroupWise 驱动程序的两个实例,每台服务器使用一个。 他在每台 Identity Manager 服务器上安装 Identity Manager,然后设置 GroupWise 驱动程序。

服务器 A 保存“市场营销”和“财务”容器的复本。 同时,身份管理容器的复本也在该服务器上,该容器保存服务器 A 的驱动程序集以及服务器 A 的 GroupWise 驱动程序对象。

服务器 B 保存开发容器和财务容器的复本,同时,身份管理容器的复本也在该服务器上,该容器保存服务器 B 的驱动程序集和服务器 B 的 GroupWise 驱动程序对象。

由于服务器 A 和服务器 B 均保存了“财务”容器的复本,因此这两个服务器均保存了“财务”容器中的用户 JBassad。 如果不使用范围过滤,GroupWise 驱动程序 A 和 GroupWise 驱动程序 B 都会同步 Jbassad。

图 3-5 带重叠复本的两个服务器,不使用范围过滤

下图显示由于范围过滤已定义了同步每个容器的驱动程序,因此它可以防止驱动程序的两个实例管理同一用户。

图 3-6 范围过滤定义同步每个容器的驱动程序

Identity Manager 附带一些预定义的规则。有两个规则可帮助执行范围过滤:事件转换 - 范围过滤 - 包括子树事件转换 - 范围过滤 - 排除子树,具体说明请参见《了解 Identity Manager 4.0.1 的策略》。

对于此示例,可以对服务器 A 和服务器 B 使用“包括子树”预定义规则。可为每个驱动程序定义不同的范围,以便它们只同步指定容器中的用户。 服务器 A 将同步“市场营销”和“财务”。 服务器 B 将同步开发容器。