PasswordSync 功能可以使在 Windows Active Directory 域上进行的用户密码更改与 Identity Manager 中定义的其他资源保持同步。PasswordSync 必须安装在将与 Identity Manager 同步的域中的每个域控制器上。PasswordSync 必须与 Identity Manager 分开安装。
PasswordSync 由位于每个域控制器上的 DLL (lhpwic.dll) 组成。此 DLL 从 Windows 接收密码更新通知,对其进行加密,然后通过 HTTPS 将其发送到 PasswordSync Servlet。PasswordSync Servlet 位于运行 Identity Manager 的应用服务器上。
首选使用 HTTPS,但也支持 HTTP。
PasswordSync Servlet 将通知转换为 Identity Manager 可以理解的格式。然后,该 Servlet 使用以下方法之一将密码更改(仍处于加密状态)发送到 Identity Manager:
直接方法。Servlet 使用本机 Identity Manager 类将密码更改直接传送到 Identity Manager。(请参见什么是 PasswordSync?。)
建议将直接连接方法仅用于不太复杂的较小环境,这种环境只要求将消息传送到一个系统,并且不要求确保传送消息。(如果由于某种原因无法直接传送消息,该消息将会丢失。无法进行备份传送。)
JMS 方法。Servlet 使用 JMS(Java Message Service,Java 消息服务)将密码信息发送到 Identity Manager。借助于 JMS,Servlet 将密码更改提交到 JMS 消息队列。Identity Manager 的 JMS 侦听器资源适配器将单独检查队列中的新消息。如果找到在队列中等待的密码更改消息,JMS 侦听器适配器将从队列中提取该消息,并将其导入到 Identity Manager 中。(请参见图 11–2。)
建议将 JMS 方法用于较复杂的环境,这种环境具有较高的数据传送量要求,需要将消息传送到多个系统,并且要确保将消息传送到目标位置。可以将 JMS 消息队列设置为具有较高的可用性。只要消息位于队列中,如果到 Identity Manager 的消息传送失败,该队列将保留更改,直到将消息传送到 Identity Manager。
您必须单独安装和配置 JMS。
图 11–1 以图表形式显示了直接连接。在此配置中,PasswordSync Servlet 将更新消息直接发送到 Identity Manager。
图 11–2 以图表形式显示了 JMS 连接。在此配置中,PasswordSync Servlet 将更新消息发送到 JMS 消息队列。Identity Manager 的 JMS 侦听器资源适配器定期检查队列(图中用浅蓝色箭头表示)中的新消息。队列将消息发送到 Identity Manager(用深蓝色箭头表示)以进行响应。
当 Identity Manager 收到密码更改通知时,将对其进行解密,然后使用工作流任务处理该更改。密码将在用户所有的分配资源中得到更新,并且 SMTP 服务器发送电子邮件通知用户密码更改的状态。
只有在成功更改密码时,Windows 才会发出更新通知。如果密码更改请求不符合域的密码策略,Windows 将拒绝该请求,并且不会将同步数据发送到 Identity Manager。
图 11–3 显示了 Identity Manager 在收到密码更新通知后启动工作流并向用户发送电子邮件的过程。
PasswordSync 放弃以 $(美元符号)结尾的帐户名称的所有帐户更改通知。名称以 $ 结尾的帐户被视为 Windows 计算机帐户。不会将以美元符号结尾的任何用户帐户名称转发到 Identity Manager。