IBM Tivoli安全产品用户数据导入与同步工具
这一配置文件的任务是在单一域中搜索 Access Manager 用户,导入 Access Manager 用户数据到 Identity Manager,以及创建 Identity Manager 用户。三个 AssemblyLines 内置在这一配置文件中。
AssemblyLine: LDAPImport这一 AssemblyLine 从 LDAP 注册表中检索 Access Manager 用户数据,比如 IBM Directory、Sun ONE (以前称为 iPlanet) Directory,等等。
第一个连接器工作在 Iterator 模式下。它搜索 secAuthority=Default下的 cn=users 条目。搜索过滤器定义为 objectClass=secMap。每条返回的记录都包含了 secdn 属性,这是 Access Manager 可识别的用户 dn。
有了从第一个连接器获得的 secdn 属性, 第二个连接器工作在 lookup 模式下,并搜索匹配 secdn 的 dn。如果找到的话,它检索 cn、sn、uid 和其他属性。在这个过程中,它使用 Directory Integrator 的 “After Lookup”用户退出特性,运行一个 JavaScript 脚本,从而排除 Security Master 用户:
代码示例:从 TAM 用户中排除 Security Master 用户
var tdn=conn.getString("$dn");
if (tdn.indexOf("SecurityMaster",0) > 0)
system.skipEntry();
else
task.logmsg("---> Access Manager user data is read." + tdn);
|
可以修改这一 JavaScript 脚本以排除更多的特定用户,这样就可以修改任何 Access Manager 超级用户。
第三个连接器在其他 AssemblyLines 中更加常见,它用于 Identity Manager 导入。这个连接器是一个 JNDI 连接器,工作在 AddOnly 模式下。要了解 Identity Manager 4.5 中支持 DSMLv2 的更多信息,包括 JNDI 连接器的设置,请参阅 Identity Manager 4.5 Policy and Organization Administration Guide。
该连接器从前一连接器取得工作属性,并将它们映射到以下 Identity Manager 属性:
cn、sn、objectClass、displayName、givenName、uid、erAliases。
前三个是 Identity Manager 必需的属性。如果缺失其中任何一个,将无法创建 Identity Manager 用户。Identity Manager 或 Access Manager 管理员也可以提供一种定制属性映射模式或者管理员可以修改当前映射,这可以通过 Directory Integrator 管理工具来完成。
erAliases 是一种多值变量,它从 Access Manager uid 和 cn 映射而来。该属性在 Identity Manager 用户创建之后,用于 Access Manager 帐户调解。
AssemblyLine: ADImport该 AssemblyLine 从 Active Directory 注册表检索 Access Manager 用户数据。当前,Access Manager 还只支持 Windows 2000 server 中的 Active Directory。
类似于前一个 AssemblyLine,第一个连接器 FindADTAMUsers 工作在 Iterator 模式,并在客户域从 Active Directory 搜索所有 Access Manager 用户。管理员需要提供搜索基准的活动目录域名。用域名作为“domain_name”,搜索基准是:
cn=Users,cn=default,cn=tivoli pd domains,dc=domain_name,dc=com
搜索过滤器是:
objectCategory=cn=urafuser,cn=schema,cn=configuration,dc=domain_name,dc=com
每一返回的记录包含 urafregistryUID 属性,它是用户在 Access Manager 中的 dn。
接着 第二个连接器GetADTAMUsers 查找目录,以发现等于 urafregistryUID 的 dn,并检索用户属性,将其导入到 Identity Manager。同时,如果正在搜索的 dn 是“sec_master”或“ivmgrd-master”,条目将被跳过。
该 AssemblyLine 中的 第三个连接器用于 Identity Manager 导入,它与前一 AssemblyLine 中的相同。
AssemblyLine: DominoImport该 AssemblyLine 从 Domino 目录中检索 Access Manager 用户数据。
该 AssemblyLine 中的第一个和第二个连接器是 Lotus Notes 连接器,它通过本地 Notes 客户机与 Domino 目录进行交互。 第一个连接器搜索 Domino 服务器上的 PDMdata.nsf 数据库,数据库视图设置为 URAF User Objects。每一个返回的记录都包含了 UserID 属性,它表示一个 Access Manager 用户。
第二个连接器 查看 Domino 目录中的 names.nsf 数据库,以发现从前一连接器获得的匹配 UserID 的 ShortName。如果发现的话,连接器检索 First name、Last name,等等,用于作为 AssemblyLine 的输入工作属性。为了避免修改 Access Manager 管理员帐户,使用 JavaScript 过滤器来排除 Access Manager 管理员。
第三个连接器用于 Identity Manager 导入,它与前一 AssemblyLine 中的相同。
由于 Access Manager 只在 LDAP Directory 中支持多域用户,这一配置文件只包括一个 AssemblyLine,用于检索来自 LDAP 注册表的多域中的 Access Manager 用户,并将它们导入到 Identity Manager。
第一个连接器搜索 secauthority=default 下的 cn=Subdomains。搜索过滤器是 secmap。从每一返回的对象 dn 中进一步检查 cn=Users。如果未找到“cn=Users”,将跳过该条目。同样,如果 dn 是 Master,该记录也将被跳过。从该连接器返回的最终记录包括来自所有域的 Access Manager 用户。如果不想从所有域导入的话,可以修改 hooks 下的 Java Script 脚本,以排除那些不想包括的域。
在多域中搜索之后,第二和第三个连接器的工作方式与单域 AssemblyLine 中相同。
该配置文件包含两个 AssemblyLines: LDAPUserstoTIM和 ADUserstoTIM。第一个检索公共 LDAP 目录中的用户数据,而第二个检索活动目录中的用户数据。
因为每一公共注册表中的用户属性可能十分不同,该工具示例是非常基本的。它只检索 cn、sn 和 uid 属性,将它们映射到相应的 Identity Manager 用户创建的 Identity Manager 用户属性。通过修改 AssemblyLine 中连接器的 Input Map 和 Output Map,可以很容易地添加更多属性。
每一 AssemblyLine 中的连接器十分类似于 TAMtoTIMImport.xml。然而,搜索基准必须手工定义。
该配置文件用于同步 Identity Manager 用户属性与 Access Manager 用户属性。该同步设计用于那些 Access Manager 用户,他们拥有 Identity Manager 帐户。两个 AssemblyLines 内置在这一配置文件中。第一个 AssemblyLine 用于无条件同步,而第二个 AssemblyLine 用于监视 LDAP 更改日志并启动动态同步功能。第二个 AssemblyLine 在这里被引入。
有关这一任务值得注意的一件事情是,它假定其用户理解如何组织 Identity Manager 和 Access Manager 用户注册表。这一任务已经开发出来,使用的是 Identity Manager 4.5 和 Access Manager 4.1 或 5.1。这些产品的未来版本可能会修改它们组织用户注册表的方式,因此需要修改这一任务,以便它能继续工作。
AssemblyLine: synctambychangelog
该 AssemblyLine 监视来自 LDAP 更改日志的 Identity Manager 用户属性变动。要使用这一 AssemblyLine,必须启用 LDAP 更改日志。如果 Identity Manager 用户属性更改的话,该 AssemblyLine 更新与之匹配的 Access Manager 用户数据。该 AssemblyLine 可在任何时侯手工启动,或者在预定的时间通过 ScheduleSync 事件处理程序启动。
从 TIMtoTAMSyncExit 文件中定义的最后一次更改号开始, 第一个连接器读取更改日志。最后一次更改号在每次 AssemblyLine 运行时被更新。
该连接器的第一项任务是过滤掉非 Identity Manager 用户更改。每一 LDAP 更改日志包含一个 targetdn,这是已更改条目的 dn。如果这一 dn 以“ERGLOBALID”或者“ergloblid”打头,它就是 Identity Manager 用户更改。如果不是的话,更改日志将被跳过。
第二连接器工作在 Lookup 模式下,它搜索 Identity Manager 目录后缀下的 Access Manager 帐户。每一 Access Manager 帐户都有一个所有者,它是一个 Identity Manager 用户。该 AssemblyLine 的任务是发现这些在前一连接器中已经找到的 Access Manager 帐户所有者。该连接器通过比较每一 Access Manager 帐户来找到等于前一连接器中发现的“targetdn”属性,从而完成这一任务。如果匹配的话,Access Manager 帐户及其所有者如果是 Identity Manager 用户并且其用户属性经过更改,将都会被定位。同时,将重新获得 Access Manager 帐户的属性 ertamdn,该属性是相关的 Access Manager 用户 dn。现在我们就有了 Identity Manager 用户的 dn 和 Access Manager 用户的 dn。该连接器一个关键连接器。
第三个连接器现在查找 Identity Manager 的 dn,它等于“erparent”工作属性,然后检索用户属性,并添加到工作属性。该经过检索的属性是那些业务和个人属性,用于定义诸如通讯地址、电话号码等。
完成这些之后, 最后一个连接器工作在 Update 模式下。它查找匹配第二个连接器中发现的 “ertamdn” 的 Access Manager dn。该连接器定义 Identity Manager 个人和业务属性与 Access Manager 个人和业务属性之间的映射。它修改所有在 Access Manager 注册表中已定义的属性。
该事件处理程序用于控制 synctambychangelog AssemblyLine 的启动时间。构建这一定时器的原因在于,为管理员提供工具,以便定期启动 AssemblyLine 而不是连续运行。该事件处理程序只不过是一个定时器,这样管理员可以定义任何形式的 AssemblyLine 启动时间,比如每小时、每天、每周,等等。同样,更改日志连接器的选项也定义了睡眠时间和等待时间。选择不同的组合为管理员提供了随业务需要而不同的灵活性。启动时间、睡眠时间、等待时间可以在属性文件中定义。
退出文件包含了更改日志起始号。更改日志起始号告诉 AssemblyLine 从更改日志的哪里开始查找 Identity 用户修改。提供起始号阻止了 AssemblyLine 连续同步老的用户属性更改,因为老的用户属性已经在以前同步完成了。
默认起始号可以在文件中进行设置。第一次执行以后,AssemblyLine 每次动态更新更改日志处理的起始号。
这些解决方案可以安装在公司内部网的任何服务器或工作站上。唯一的先决条件是需要安装 Directory Integrator 5.1.2。Directory Integrator 可以远程与不同的数据资源进行交互。如果 Lotus Notes 连接器用于访问 Domino 服务器中的用户数据,Directory Integrator 及其工具文件应该与 Notes 客户机安装在一起。
- 定义属性文件的环境设置。
- 在 Identity Manager 4.5 服务器中创建一个 IDI Data Feed 服务。用户 ID、口令和 NamingCon 文本 必须在 Identity Manager 服务器中定义,并放入 Directory Integrator JNDI 连接器的属性文件中,以供使用。
- 运行在生产服务器上之前,首先在模拟环境中运行一次“Proof of Concept”测试,以检查属性文件设置、输出结果等。测试应该使用 Directory Integrator Administration Tool 运行。在管理工具中,您可以尝试连接到数据资源,检查连接是否可以建立。在执行期间,检查任何错误。如果发生错误,打开错误转储。 然后您可以查看管理工具中的详细错误日志。
- 要从 Directory Integrator Admin Tool 启动一个AssemblyLine。
启动 Directory Integrator Admin Tool 并载入配置文件。选择任务的 AssemblyLine 或者 EventHandler。在右上角单击“run”按钮。运行的信息显示在执行窗口中。Directory Integrator Admin Tool 的例子如图 1 所示。
- 要从命令行启动 AssemblyLine 。
在命令提示行下:
将目录更改为 Directory Integrator 根目录(比如,C:\Program Files\ibm\IBMDirectoryIntegrator)。
键入以下命令以启动 Directory Integrator,它带有预先定义好的配置文件和 AssemblyLine:
ibmdisrv -c"Configuration file name " -r"AssemblyLine name” -w注意:Directory Integrator 控制台选项
利用“-m” 选项,可以启动 Administration 和 Monitor Console。控制台启动后,允许管理员使用一个浏览器来管理和监视 AssemblyLines。管理员可以查看和管理正在运行的 AssemblyLines 的状态。默认的 URL 地址是: http://server_ip_address:8989。 Administration 和 Monitor Console 的例子如图 2 所示。
图 2:Directory Integrator Administration and Monitor Console (AMC)
- 消息
查看 Directory Integrator Admin Tool UI 中的执行消息,并打开错误转储。
默认情况下(出于提高性能的目的),挂靠在工具中的错误定义为: "system.skipEntry();"
为了进行错误分析,应该改为 "system.dumpEntry(error);" - 输出文件—— 在每一 AssemblyLine 中启用 FileOutput 连接器,以检查输出文件的最终属性值。
- 直接检查用户数据通过 LDAP、Active Directory 和 Domino Server,检查用户数据以便查看导入或同步结果。
- 从 Identity Manager 服务器检查结果—— 检查用户输入过程是否成功。