2.1 数据同步

数据同步提供了业务流程自动化的基础。数据同步最简单的形式是:数据从一个位置(数据项发生更改的位置)移动到另一个位置(需要该数据项的位置)。例如,如果某个员工的电话号码在公司的人力资源系统中发生了更改,则理想情况是,该更改自动显示在储存该员工电话号码的所有其他系统中。

Identity Manager 不限于身份数据的同步。Identity Manager 可同步储存在已连接应用程序或身份库中的任何类型的数据。

数据同步(包括口令同步)由 Identity Manager 解决方案的五个基本组件提供:身份库、元目录引擎、驱动程序、Remote Loader 和已连接应用程序。这些组件如下表所示。

图 2-2 Identity Manager 体系结构组件

以下各节描述了其中各个组件并解释应该了解的概念,以便有效地在贵组织中的各个系统之间同步数据。

2.1.1 组件

身份库: 身份库充当您要在应用程序之间同步的数据的元目录。例如,从 PeopleSoft 系统同步到 Lotus Notes 的数据将首先添加到身份库,然后再发送给 Lotus Notes 系统。此外,身份库还储存特定于 Identity Manager 的信息,如驱动程序配置、参数和策略。Novell eDirectory™ 用于身份库。

元目录引擎: 当数据在身份库或已连接应用程序中发生更改时,元目录引擎将处理更改。对于身份库中发生的事件,引擎将处理更改并通过驱动程序向应用程序发出命令。对于应用程序中发生的事件,引擎将接收驱动程序中的更改、处理更改然后向身份库发出命令。元目录引擎也称为 Identity Manager 引擎

驱动程序: 驱动程序连接到需要管理其身份信息的应用程序。驱动程序有两个基本责任:1) 将应用程序中的数据更改(事件)报告给元目录引擎,2) 执行由元目录引擎提交给应用程序的数据更改(命令)。

Remote Loader: 驱动程序必须在与连接到的应用程序所在的同一服务器上安装并运行。如果应用程序位于与元目录引擎相同的服务器上,则您需要进行的操作是将驱动程序安装到该服务器上。但是,如果应用程序没有位于与元目录引擎相同的服务器上(也就是说,应用程序所在服务器相对于引擎的服务器是远程而非本地的),则您必须将驱动程序和 Remote Loader 安装到该应用程序的服务器上。Remote Loader 装载驱动程序并代表该驱动程序与元目录引擎通讯。

应用程序: 驱动程序连接到的系统、目录、数据库或操作系统。该应用程序必须提供驱动程序可用于确定应用程序数据更改和影响应用程序数据更改的 API。应用程序也经常称为已连接系统

2.1.2 主要概念

通道: 数据在身份库和已连接系统之间沿着两个单独的通道流动。订购者通道提供了从身份库到已连接系统的数据流;也就是说,已连接系统从身份库订购数据。发布者通道提供从已连接系统到身份库的数据流;也就是说,已连接系统将数据发布到身份库。

数据表示: 数据作为 XML 文档流过通道。当身份库或已连接系统中发生更改时,即会创建 XML 文档。XML 文档将传递给元目录引擎,后者通过一组与驱动程序通道关联的过滤器和策略来处理文档。将所有处理应用到 XML 文档后,元目录引擎将使用文档启动对身份库(发布者通道)的相应更改,或驱动程序使用文档启动已连接系统(订购者通道)中的相应更改。

数据处理: XML 文档流过驱动程序通道时,文档数据会受到与该通道关联的策略的影响。

策略可用于很多操作,包括更改数据格式、在身份库和已连接系统之间映射属性、有条件地阻止数据流、生成电子邮件通知以及修改数据更改的类型。

数据流控制: 过滤器过滤器策略控制数据流。过滤器指定要在身份库和已连接系统之间同步的数据项。例如,通常会在系统之间同步用户数据。因此,对于大多数已连接系统,用户数据会在过滤器中列出。但是,打印机通常不受大多数应用程序的重视,因此,对于大多数已连接系统,打印机数据不显示在过滤器中。

身份库和已连接系统之间的每种关系都有两个过滤器:订购者通道上的过滤器,用于控制从身份库到已连接系统的数据流;发布者通道上的过滤器,用于控制从已连接系统到身份库的数据流。

权威来源: 与身份关联的大多数数据项都具有一个概念性拥有者。将数据项的拥有者视为该项的权威来源。通常,仅允许数据项的权威来源对数据项进行更改。

例如,通常将公司电子邮件系统视为员工的电子邮件地址的权威来源。如果公司白页目录的管理员在该系统中更改了员工的电子邮件地址,则该更改对于员工是否实际从更改后的地址接收电子邮件没有任何影响,因为必须对电子邮件系统进行更改后此操作才生效。

Identity Manager 使用过滤器来指定某个项的权威来源。例如,如果 PBX 系统和身份库之间关系的过滤器允许员工的电话号码从 PBX 系统流向身份库,但不允许从身份库流向 PBX 系统,则 PBX 系统是电话号码的权威来源。如果所有其他已连接系统关系允许电话号码从身份库流向已连接系统,但不允许反向流动,则最后效果是 PBX 系统是企业中员工电话号码的唯一权威来源。

自动化供应: 自动化供应借助于 Identity Manager 的功能来生成用户供应操作,而非简单地同步数据项。

例如,在典型的 Identity Manager 系统中,其中人力资源 (HR) 数据库是大多数员工数据的权威来源,向 HR 数据库中添加员工将触发在身份库中自动创建相应帐户的操作。创建身份库帐户反过来又触发在电子邮件系统中自动为该员工创建电子邮件帐户的操作。用于供应给电子邮件系统帐户的数据从身份库中获取,其中可能包括员工姓名、位置、电话号码等。

帐户、访问权和数据的自动供应可通过各种方式控制,包括:

  • 数据项值:例如,在访问数据库中为各种建筑自动创建帐户可由员工的位置属性中的某个值控制。

  • 批准工作流程:例如,在财务部门中创建员工可触发自动向财务部门领导发送一封电子邮件,请求在财务系统中批准一个新员工帐户。财务部门领导按照电子邮件的指示打开一个网页,在此页面中,部门领导可以批准或拒绝该请求。然后批准操作可触发在财务系统中为该员工自动创建帐户的操作。

  • 角色指派:例如,将“会计”角色授予某员工。Identity Manager 通过系统工作流程(无需人为干预)和/或人为批准流程向员工供应所有帐户、访问权和指派给该帐户角色的数据。

权利: 权利表示已连接系统中的某个资源,如帐户或组成员资格。如果用户满足为已连接系统中针对某个权利建立的准则,Identity Manager 将处理导致授予该用户资源访问权的用户事件。当然,这要求所有策略均已就绪以便能够访问资源。例如,如果某个用户满足 Active Directory 中 Exchange 帐户的准则,则元目录引擎将通过提供 Exchange 帐户的 Active Directory 驱动程序策略集来处理该用户。

权利的关键优势是您可在一个权利中定义用于访问资源的业务逻辑,而非定义多个驱动程序策略。例如,您可定义一个“帐户”权利,用于在四个已连接系统中向用户提供帐户。是否向用户提供帐户由权利决定,这就是说所有四个驱动程序的策略不需要包括业务逻辑。而是策略仅需要提供授予帐户的机制。如果您需要进行业务逻辑更改,则只需在权利中(而无需在每个驱动程序中)更改它。

作业: 大多数情况下,Identity Manager 响应数据更改或用户请求。例如,当某数据块在一个系统中发生更改时,Identity Manager 会更改其他系统中的相应数据。或者,当用户请求访问某个系统时,Identity Manager 会启动相应的流程(工作流程、资源供应等)以提供访问权。

作业使 Identity Manager 可执行不是由数据更改或用户请求启动的操作。作业由储存在身份库中的配置数据和相应的实施代码段组成。Identity Manager 包括预定义作业,可执行诸如以下的操作:启动或停止驱动程序、发送口令失效的电子邮件通知及检查驱动程序的运行状态。您还可实施自定义作业以执行其他操作;自定义作业要求您(或开发人员/顾问)创建执行所需操作必需的代码。

工作指令: 通常,对身份库或已连接应用程序中的数据更改是即时处理的。工作指令使您可以安排在特定日期和时间要执行的任务。例如,雇用了一名新员工,但安排在一个月后上班。需要将该员工添加到 HR 数据库,但在开始日期前不应授予他对公司任何资源(电子邮件、服务器等)的访问权。如果没有工作指令,将立刻授予该用户访问权。通过实施工作指令,将会创建仅在开始日期才启动帐户供应的工作指令。