Sun Identity Manager 8.1 业务管理员指南

第 11 章 PasswordSync

PasswordSync 检测起始于 Windows 域上的用户密码更改,并将这些更改转发给 Identity Manager。然后,Identity Manager 与 Identity Manager 中定义的其他资源之间同步密码更改。

本章采用以下组织形式:

什么是 PasswordSync?

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:

图 11–1 以图表形式显示了直接连接。在此配置中,PasswordSync Servlet 将更新消息直接发送到 Identity Manager。

图 11–1 PasswordSync 逻辑图表(直接连接)。

该图展示了 PasswordSync 逻辑图表(直接连接)

图 11–2 以图表形式显示了 JMS 连接。在此配置中,PasswordSync Servlet 将更新消息发送到 JMS 消息队列。Identity Manager 的 JMS 侦听器资源适配器定期检查队列(图中用浅蓝色箭头表示)中的新消息。队列将消息发送到 Identity Manager(用深蓝色箭头表示)以进行响应。

图 11–2 PasswordSync 逻辑图表(JMS 连接)。

该图展示了 PasswordSync 逻辑图表(JMS 连接)

当 Identity Manager 收到密码更改通知时,将对其进行解密,然后使用工作流任务处理该更改。密码将在用户所有的分配资源中得到更新,并且 SMTP 服务器发送电子邮件通知用户密码更改的状态。


注 –

只有在成功更改密码时,Windows 才会发出更新通知。如果密码更改请求不符合域的密码策略,Windows 将拒绝该请求,并且不会将同步数据发送到 Identity Manager。


图 11–3 显示了 Identity Manager 在收到密码更新通知后启动工作流并向用户发送电子邮件的过程。

图 11–3 PasswordSync 触发了一个工作流。

该图展示了 PasswordSync 触发工作流的方式。


注 –

PasswordSync 放弃以 $(美元符号)结尾的帐户名称的所有帐户更改通知。名称以 $ 结尾的帐户被视为 Windows 计算机帐户。不会将以美元符号结尾的任何用户帐户名称转发到 Identity Manager。


安装之前

只能在 Windows 2008、Windows 2003 和 Windows 2000 域控制器上设置 PasswordSync 功能。(Identity Manager 8.0 版中不再提供对 Windows NT 域控制器的支持。)必须在与 Identity Manager 同步的域中的每个主域控制器和备份域控制器上安装 PasswordSync。强烈建议将 PasswordSync 配置为使用 HTTPS。


注 –

在所有域控制器上,应该将早于 PasswordSync 7.1.1 的版本至少更新到版本 7.1.1。

rpcrouter2 servlet 支持在 8.0 版中已过时,将来的发行版中将删除该支持。PasswordSync 7.1.1 和更高版本支持新协议。


如果使用的是 JMS,PasswordSync 需要与 JMS 服务器连接。有关 JMS 系统要求的详细信息,请参见《Sun Identity Manager 8.1 Resources Reference》中的 "JMS Listener resource adapter" 一节。

此外,PasswordSync 还要求您

以下各节将详细讨论这些要求。

安装 Microsoft .NET 1.1

要使用 PasswordSync,必须至少安装 Microsoft .NET 1.1 Framework。如果您使用 Windows 2003 域控制器,则默认安装此 Framework。默认情况下,在 Windows 2008 域控制器上安装 Microsoft .NET 2.0 Framework。如果使用的是 Windows 2000 域控制器,则默认不安装该框架。可以从 Microsoft 下载中心下载此工具包:

http://www.microsoft.com/downloads


注 –

将 PasswordSync 配置为使用 SSL

虽然在将敏感数据发送到 Identity Manager 服务器之前已对其进行加密,Sun Microsystems 仍建议对 PasswordSync 进行配置以使用安全 SSL 连接(即 HTTPS 连接)。

有关如何安装导入的 SSL 证书的信息,请参见以下 Microsoft 知识库 How-To 文章:

http://support.microsoft.com/kb/816794

在安装 PasswordSync 后,可通过在 PasswordSync 的“配置”对话框中指定 HTTPS URL 来测试是否正确配置了 SSL 连接。有关说明,请参见测试配置

卸载 PasswordSync 的先前版本

安装更高版本之前,必须先删除任何先前安装的 PasswordSync 实例。

在 Windows 上安装和配置 PasswordSync

本节包含有关安装和配置 PasswordSync 的信息和说明。

此信息分为以下几个部分:

Procedure安装 PasswordSync 配置应用程序

以下过程介绍了如何安装 PasswordSync 配置应用程序。


注 –

必须在与 Identity Manager 同步的域中的每个域控制器上安装 PasswordSync。

在继续操作之前,请确保卸载以前安装的任何版本的 PasswordSync。


  1. 从 Identity Manager 安装介质中,

    • 双击 pwsync\IdmPwSync_x86.msi(如果安装到 32 位版本的 Windows)。

    • 双击 pwsync\IdmPwSync_x64.msi(如果安装到 64 位版本的 Windows)。

    将打开安装向导,并且“欢迎”窗口显示以下导航按钮:

    • 取消。随时可以单击以退出向导,而不保存任何更改。

    • 上一步。单击以返回上一个对话框。

    • 下一步。单击以前进到下一个对话框。

  2. 阅读“欢迎”屏幕上提供的信息,然后单击“下一步”以显示“选择安装类型”窗口。

  3. 单击“典型”或“完全”安装完整的 PasswordSync 软件包,或者单击“自定义”控制安装哪些软件包组件。单击“下一步”继续。

  4. 在显示“准备安装”窗口时,单击“安装”以安装该产品。

  5. 将显示最终窗口。启用“启动配置应用程序”框,以便开始配置 Password Sync,然后单击“完成”以完成安装过程。

    第 11 章 中提供了有关配置 PasswordSync 的说明。


    注 –

    将显示一个对话框,提示必须重新启动系统才能使更改生效。在完成 PasswordSync 配置之前不需要重新启动系统,但在实现 PasswordSync 之前必须重新启动域控制器。


    在 Windows 上安装和配置 PasswordSync介绍了在每个域控制器上安装的文件。

    安装的组件  

    描述  

    %$INSTALL_DIR$%\configure.exe

    PasswordSync 配置程序 

    %$INSTALL_DIR$%\configure.exe.manifest

    用于配置程序的数据文件 

    %$INSTALL_DIR$%\passwordsyncmsgs.dll

    处理 PasswordSync 消息的 DLL 

    %SYSTEMROOT%\SYSTEM32\lhpwic.dll

    密码通知 DLL,该 DLL 实现 Windows PasswordChangeNotify() 功能。

Procedure配置 PasswordSync

如果从安装程序运行配置应用程序,则该应用程序会将配置屏幕显示为向导。完成向导后,以后每次运行 PasswordSync 配置应用程序时,都可以通过选择选项卡在屏幕间导航。

  1. 如果尚未运行 PasswordSync 配置应用程序,请启动该应用程序。

    默认情况下,此配置应用程序安装在 "Program Files" -> "Sun Identity Manager PasswordSync" -> "Configuration" 中。


    注 –

    如果不打算使用 JMS,请从命令行中启动该配置应用程序并确保包含 -direct 标志,如下所示:

    C:\InstallDir\Configure.exe -direct


    将显示 PasswordSync 配置向导对话框(请参见图 11–4)。

    图 11–4 PasswordSync 配置向导

    该图显示了 PasswordSync 配置向导

  2. 根据需要,编辑该对话框中的字段。

    这些字段包括:

    • 服务器必须用安装 Identity Manager 的全限定主机名或 IP 地址替换。

    • 协议指示是否与 Identity Manager 进行安全连接。

      PasswordSync 支持配置 HTTPS 连接的证书检查行为。在启用 HTTPS 时,将显示以下选项:

      • 允许使用撤销的证书。此设置映射到连接上的 securityIgnoreCertRevoke 注册表值。默认情况下,PasswordSync 不会忽略撤销问题,并将 securityIgnoreCertRevoke 注册表值设置为 0。

        如果希望 PasswordSync 忽略撤销的证书消息,请选中该框(或将 SECURITY_FLAG_IGNORE_REVOCATION 注册表值设置为 1)。

      • 允许使用无效的证书。此设置影响连接上的 SECURITY_FLAG_IGNORE_CERT_CN_INVALIDSECURITY_FLAG_IGNORE_CERT_DATE_INVALIDSECURITY_FLAG_IGNORE_UNKNOWN_CA 选项。默认情况下,PasswordSync 不允许使用无效的证书,并将这些注册表值设置为 0。

        如果选中该框或将 securityAllowInvalidCert 注册表值设置为 1,则允许 PasswordSync 使用未通过一些安全检查的证书。对于生产环境,不建议启用此选项。


        注 –

        不会为 HTTP 协议类型显示这些设置,这些设置也不会影响 HTTP 设置。


    • 端口指定服务器的可用端口。对于 HTTP,默认端口为 80。对于 HTTPS,默认端口为 443。

    • 路径指定应用服务器上的 Identity Manager 的路径。

    • URL 是通过将其他字段连接在一起生成的。不可在 URL 字段编辑该值。

    • 设置重新初始化时间间隔(秒)指定 PasswordSync dll 应从注册表中重新读取配置设置的频率。默认值为 2880 秒或 8 小时。


      注 –

      此 PasswordSync 配置向导以秒为单位显示该值,但注册表值实际是以毫秒存储的。


      在 PasswordSync dll 处于活动状态时,该 dll 将从注册表中读取配置设置。此时间间隔值存储在 reinitIntervalMilli 注册表值中。

      在更新这些设置时,无法同步密码,这可能会导致在处理密码更改时出现很短的延迟。通常,此延迟不到 1 秒。在更新完成后,PasswordSync 将直接处理在更新期间收到的任何密码更改。另外,PasswordSync 不会在进行密码同步时处理设置更新。将重新安排更新并在稍后执行。

  3. 单击“下一步”以显示“代理服务器配置”页(图 11–5),然后根据需要编辑这些字段。

    图 11–5 PasswordSync 向导“代理服务器”对话框

    该图显示了 PasswordSync 的“代理服务器”对话框

    这些字段包括:

    • 启用。选择是否需要使用代理服务器。

    • 服务器。您必须输入代理服务器的全限定主机名或 IP 地址。

    • 端口。指定服务器的可用端口号。(默认代理端口为 8080,默认 HTTPS 端口为 443。)

  4. 单击“下一步”。

    图 11–6 PasswordSync 向导“JMS 设置”对话框

    该图显示了 PasswordSync 的“JMS 设置”对话框

    在显示“JMS 设置”对话框(图 11–6)时,执行以下操作之一:

    • 根据需要,编辑以下字段:

      • 用户指定在队列中加入新消息的 JMS 用户名称。

      • 密码确认密码指定 JMS 用户的密码。

      • 连接工厂指定要使用的 JMS 连接工厂的名称。该工厂必须已存在于 JMS 系统中。

      • 大多数情况下,应将会话类型设置为 LOCAL,这表示将使用本地会话事务。系统收到每条消息后,将提交会话。其他可能的值包括 AUTOCLIENTDUPS_OK

      • 队列名称指定密码同步事件的目的地查找名称。

    • 如果不打算使用 JMS,并且使用 -direct 标志启动配置向导,请单击“下一步”以显示“用户”对话框。跳过此步骤并转到下一步(图 11–7)。

  5. 单击“下一步”以显示“JMS 属性”对话框(图 11–7)。

    图 11–7 PasswordSync 向导“JMS 属性”对话框

    该图显示了 PasswordSync 的“JMS 属性”对话框

    JMS 属性对话框允许您定义用于构建初始 JNDI 上下文的属性集。您必须定义以下名称/值对:

    • java.naming.provider.url - 指定运行 JNDI 服务的计算机的 URL。

    • java.naming.factory.initial - 指定 JNDI 服务提供者的初始上下文工厂的类名(包括包)。

      “名称”下拉菜单包含 java.naming 软件包中的类的列表。在类名称中选择一个类或类型,然后在“值”字段中输入其相应的值。

  6. 如果不打算使用 JMS,并且使用 -direct 标志启动配置向导,请配置“用户”选项卡。否则,跳过此步骤并转到下一步。

    要配置“用户”选项卡,请根据需要编辑这些字段。

    • 帐户 ID。指定将用于连接到 Identity Manager 的用户名。

    • 密码。指定将用于连接到 Identity Manager 的密码。

  7. 单击“下一步”以显示“电子邮件”对话框(图 11–8),并根据需要编辑这些字段。

    图 11–8 PasswordSync 向导“电子邮件”对话框

    该图显示了 PasswordSync 的“电子邮件”对话框

    要在用户的密码更改没有成功同步(由于通信错误或 Identity Manager 之外的其他错误)时发送电子邮件通知,请使用“电子邮件”对话框中的以下选项设置通知和配置电子邮件。

    • 启用电子邮件。选择此选项可以启用该功能。

    • 电子邮件最终用户。如果用户要接收通知,请选择此选项。否则,将仅通知管理员。

    • SMTP 服务器。输入发送故障通知时使用的 SMTP 服务器的全限定名称或 IP 地址。

    • 管理员电子邮件地址。输入要将通知发送到的电子邮件地址。

    • 发件人名称。输入发件人的“友好名称”。

    • 发件人地址。输入发件人的电子邮件地址。

    • 邮件主题。输入所有通知的主题行。

    • 邮件正文。输入通知的文本。

      邮件正文可能包含以下变量:

      • $(accountId) - 尝试更改密码的用户的帐户 ID。

      • $(sourceEndpoint) - 安装密码通知程序的域控制器的主机名,该主机名有助于找到出现故障的计算机。

      • $(errorMessage) - 用于描述所出现的错误的错误消息。

  8. 单击“跟踪”选项卡(图 11–9)。

    图 11–9 “跟踪”选项卡

    该图展示了 PasswordSync 的“跟踪”选项卡

    设置以下字段。

    • 跟踪级别

    • 最大文件大小 (MB)

    • 跟踪文件

  9. 单击“完成”保存更改。

    如果再次运行配置应用程序,将显示一组选项卡而不是向导。如果要将应用程序显示为向导,请从命令行中键入以下命令:


    C:\InstallDir\Configure.exe -wizard

    要测试 PasswordSync 配置,请参见测试配置

无提示安装 PasswordSync

可以将 PasswordSync 安装程序配置为无提示安装。要使用此功能,必须在安装 PasswordSync 时首先将配置参数记录到文件中。将来的安装将引用该文件并重新应用这些配置设置。


注 –

如果要使用无提示安装过程,则必须在将要使用该产品的每个服务器上安装完整产品。记录并重新应用配置设置取决于要在系统上安装的配置应用程序。


无提示安装过程利用一个名为 msiexec 的 Windows 实用程序,它将从命令行安装 .msi 文件。

在命令提示符下键入 msiexec /? 可查看该实用程序的用法信息。

Microsoft 网站上也提供了相关文档。例如,有关在 Windows Server 2003 上使用 msiexec 的文档,请参见 http://technet.microsoft.com/en-us/library/cc759262.aspx

Procedure捕获安装参数将其写入到配置文件中

可以按照以下说明使用安装向导安装 PasswordSync。该配置实用程序将捕获配置参数并将其写入到 XML 文件中。

开始之前

在安装之前,请删除旧版本的 PasswordSync。

  1. 转到包含 PasswordSync 安装 (.msi ) 文件的目录。

    有关信息,请参见安装 PasswordSync 配置应用程序

  2. 在命令提示符下键入以下命令。参数和值区分大小写。


    msiexec /i pwSyncInstallFile CONFIGARGS="-writexml fullPathToFile"

    其中:

    • pwSyncInstallFile 是 PasswordSync 安装文件(IdmPwSync_86.msiIdmPwSync_x64.msi)。

    • fullPathToFile 指定写入 XML 文件的位置。

    例如:


    msiexec /i IdmPwSync_x86.msi CONFIGARGS="-writexml c:\tmp\myconfig.xml"
  3. 安装该产品。

Procedure无提示安装 PasswordSync

开始之前
  1. 将安装配置 XML 文件复制到安装程序可读取的位置。

  2. 在命令提示符下键入以下命令。参数和值区分大小写。


    msiexec /i pwSyncInstallFile ADDLOCAL="installFeature" CONFIGARGS="-readxml fullPathToFile"
     INSTALLDIR="installDir" /q

    其中:

    • pwSyncInstallFile 是 PasswordSync 安装文件(IdmPwSync_86.msiIdmPwSync_x64.msi)。

    • installFeature 指定要安装的 PasswordSync 功能。选择以下参数之一:

      • MainProgram - 仅安装拦截器 .dll 文件

      • Configuration - 仅安装配置应用程序

      • ALL - 安装完整产品

      如果未指定任何参数,则默认使用 MainProgram(如果提供了 /q 选项)。

    • fullPathToFile 指定配置 XML 文件的路径。

    • installDir 指定自定义安装目录的完整路径。可选。

    • /q 指定一个非 GUI 安装,将在完成后自动重新启动服务器。如果不包含该选项,将显示安装向导,但使用预定义设置运行配置。可选。

    示例:

    msiexec /i IdmPwSync_x86.msi CONFIGARGS="-readxml c:\tmp\myconfig.xml"
    msiexec /i IdmPwSync_x86.msi ADDLOCAL="MainProgram" 
    CONFIGARGS="-readxml c:\tmp\myconfig.xml" /q
    msiexec /i IdmPwSync_x64.msi ADDLOCAL="Complete" 
    CONFIGARGS="-readxml c:\tmp\myconfig.xml" 
    INSTALLDIR="C:\Program Files\Sun Microsystems\MyCustomInstallDirectory" /q

在应用服务器上部署 PasswordSync

在 Windows 域控制器上安装 PasswordSync 后,您必须在运行 Identity Manager 的应用服务器上执行其他步骤。

无需在应用服务器上安装 PasswordSync Servlet。在安装 Identity Manager 时,将自动安装该 Servlet。

不过,要完成 PasswordSync 部署,您需要在 Identity Manager 中执行以下操作:

添加和配置 JMS 侦听器适配器

如果 PasswordSync Servlet 使用 JMS 将消息发送到 Identity Manager,则需要添加 Identity Manager 的 JMS 侦听器资源适配器。JMS 侦听器资源适配器定期检查 PasswordSync Servlet 放在 JMS 消息队列中的消息。如果队列中包含新消息,则会将其发送到 Identity Manager 以进行处理。

Procedure添加 JMS 侦听器资源适配器

  1. 登录到 Identity Manager 管理员界面(Identity Manager 管理员界面)。

  2. 从主菜单中选择“资源”->“配置类型”。

    将打开“配置受管理的资源”页,如图 11–10 中所示。

    图 11–10 “配置受管理的资源”页。

    该图显示了“配置受管理的资源”页

  3. 确保选中“受管理?”列中的“JMS 侦听器”复选框,如图 11–10 中所示。

    如果未选中该框,请将其选中,然后单击“保存”。

  4. 单击次级菜单中的“列出资源”。

  5. 找到“资源类型操作”下拉菜单,然后选择“新建资源”。

    将显示“新建资源”页。

  6. 要添加 JMS 侦听器适配器,请从下拉菜单中选择“JMS 侦听器”(如图 11–11 中所示),然后单击“新建”。

    图 11–11 新建资源向导

    该图显示了新建资源向导

  7. 在“资源参数”页上配置以下设置,然后单击“下一步”。

    • 目的地类型。通常将该值指定为“队列”。(因为有一个订阅者而可能有多个发布者,所以各主题通常不相关。)

    • 初始上下文 JNDI 属性。定义一组用于构建初始 JNDI 上下文的属性。

      您必须定义以下名称/值对:

      • java.naming.factory.initial。指定 JNDI 服务提供者的初始上下文工厂的类名(包括包)。

      • java.naming.provider.url。指定运行 JNDI 服务的计算机的 URL。

        您可能需要定义其他属性。属性和值的列表应该与 JMS 服务器上的 JMS 设置页中指定的属性和值相匹配。例如,要提供凭证和绑定方法,您可能需要指定以下示例属性:

        • java.naming.security.principal - 绑定 DN(例如,cn=Directory manager)

        • java.naming.security.authentication - 绑定方法(例如,简单绑定)

        • java.naming.security.credentials - 密码

    • 连接工厂的 JNDI 名称。输入在 JMS 服务器中定义的连接工厂的名称。

    • 目的地的 JNDI 名称。输入在 JMS 服务器中定义的目的地的名称。

    • 用户密码。输入从队列中请求新事件的管理员的帐户名称和密码。

    • 可靠的邮件传送支持。选择 LOCAL(本地事务)。其他选项不适用于密码同步。

    • 邮件映射。输入 java:com.waveset.adapter.jms.PasswordSyncMessageMapper。该类将来自 JMS 服务器的消息转换为同步用户密码工作流可以使用的格式。

      该图展示了 JMS 侦听器资源向导“资源参数”页。
  8. 在“帐户属性”向导页(图 11–12)上,单击“添加属性”并映射以下属性(由 PasswordSyncMessageMapper 提供给 JMS 侦听器适配器)。

    • IDMAccountId - 该属性由 PasswordSyncMessageMapper 根据在 JMS 消息中传递的 resourceAccountIdresourceAccountGUID 属性解析。

    • password - 在 JMS 消息中转发的加密密码。

    图 11–12 创建 JMS 侦听器资源向导的“帐户属性”页

    该图显示了创建 JMS 侦听器资源向导的“帐户属性”页

  9. 单击“下一步”。

    将打开“身份模板”向导页,如图 11–13 中所示。请注意,在上一步中添加的属性显示在资源向导的“属性映射”部分中(图 11–13)。

    图 11–13 JMS 侦听器资源向导属性映射

    该图显示了编辑 JMS 侦听器资源向导

  10. 单击“下一步”,然后根据需要配置“Identity System 参数”页中的选项。

    有关设置 JMS 侦听器资源适配器的详细信息,请参见《Sun Identity Manager 8.1 Resources Reference》

实现“同步用户密码”工作流

当 Identity Manager 收到密码更改通知时,它将启动“同步用户密码”工作流。默认“同步用户密码”工作流将签出 ChangeUserPassword 查看器,然后再次将其签入。接下来,工作流将处理所有资源帐户(发送最初密码更改通知的 Windows 资源除外)。最后,Identity Manager 将向用户发送电子邮件,指示所有资源上的密码更改是否成功。

如果要默认实现同步用户密码工作流,则将其作为 JMS 侦听器适配器实例的进程规则进行分配。可以在配置 JMS 侦听器以进行同步时分配进程规则(请参见配置活动同步)。

如果要修改工作流,请复制 $WSHOME/sample/wfpwsync.xml 文件并进行修改。然后,将修改的工作流导入到 Identity Manager 中。

可能要对默认工作流执行的修改包括:

有关使用工作流的详细信息,请参见《Sun Identity Manager Deployment Reference》中的第 1  章 “Workflow”

设置通知

Identity Manager 提供了两个电子邮件模板,它们可以通知用户所有资源上的密码更改是否成功。

这两个模板为:

两个模板均应该更新,以便在用户需要进一步帮助时,为其提供有关下一步操作的公司特定信息。有关详细信息,请参见第 4 章中的自定义电子邮件模板

在 Sun JMS Server 中配置 PasswordSync

Identity Manager 可以使用 Java 消息服务 (Java Message Service, JMS) 从 PasswordSync Servlet 中接收密码更改通知。除了确保传送消息外,JMS 还可以将消息传送到多个系统。


注 –

有关此适配器的详细信息,请参见《Sun Identity Manager 8.1 Resources Reference》


本节通过使用示例方案来提供有关使用 Sun JMS 服务器配置 PasswordSync 的说明。

信息通过以下方式进行组织:

示例方案

使用 JMS 服务器配置 PasswordSync 的典型(简单)使用案例是使用户在 Windows 上更改其密码,然后令 Identity Manager 获取新密码,最后在 Sun Directory Server 上使用新密码更新用户帐户。

需要为该方案配置以下环境:

以下文件已复制到 Tomcat common/lib 目录以启用 JMS 和 JNDI:

创建和存储管理对象

本节介绍了用于创建和存储以下管理对象的指令,这些指令是示例方案正常工作所必需的:

您可以将管理对象存储到 LDAP 目录或文件中。如果使用的是文件,该文件的所有实例必须相同。

有关说明,请参见


注 –

将管理对象存储到 LDAP 目录

可以将 PasswordSync 和 JMS 侦听器配置为使用 LDAP 目录中存储的管理对象。图 11–14 展示了该过程。PasswordSync Servlet 和 JMS 侦听器适配器必须从 LDAP 目录中检索连接工厂和目的地设置才能发送和接收消息。

图 11–14 从 LDAP 目录中检索连接工厂和目的地对象

该图展示了如何将 PasswordSync 和 JMS 侦听器配置为使用 LDAP 目录中存储的管理对象

使用 Message Queue 命令行工具

本节介绍了如何使用 Message Queue 命令行工具 (imqobjmgr) 将受管理对象存储到 LDAP 目录中。

存储连接工厂对象

打开 Message Queue 命令行工具 (imqobjmgr),然后键入存储连接工厂对象中的命令以存储连接工厂对象。


示例 11–1 存储连接工厂对象


#> ./imqobjmgr add -l "cn=mytestFactory" 
-j "java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory" 
-j "java.naming.provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com" 
-j "java.naming.security.principal=cn=directory manager" 
-j "java.naming.security.credentials=password" 
-j "java.naming.security.authentication=simple" 
-t qf -o "imqAddressList=mq://gwenig.coopsrc.com:7676/jms" 
Adding a Queue Connection Factory object with the following attributes: 
imqAckOnAcknowledge [Message Service Acknowledgement of Client Acknowledgements] ... 
imqSetJMSXUserID [Enable JMSXUserID Message Property] false 
Using the following lookup name: cn=mytestFactory The object’s read-only state: false 
To the object store specified by: 
java.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory 
java.naming.provider.url 
ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com 
java.naming.security.authentication 
simple java.naming.security.credentials netscape
java.naming.security.principal 
cn=directory manager Object successfully added.

存储连接工厂对象中,imqAddressList 定义了 JMS 服务器/代理主机名 (gwenig.coopsrc.com)、端口 (7676) 以及访问方法 (jms)。

存储目的地对象

在 Message Queue 命令行工具 (imqobjmgr) 中,键入存储目的地对象中的命令以存储目的地对象。


示例 11–2 存储目的地对象


#> ./imqobjmgr add -l "cn=mytestDestination" 
-j "java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory" 
-j "java.naming.provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com" 
-j "java.naming.security.principal=cn=directory manager" 
-j "java.naming.security.credentials=password" 
-j "java.naming.security.authentication=simple" 
-t q -o "imqDestinationName=mytestDestination" 
Adding a Queue object with the following attributes: 
imqDestinationDescription [Destination Description] 
A Description for the Destination Object imqDestinationName [Destination Name] 
mytestDestination Using the following lookup name: cn=mytestDestination 
The object’s read-only state: false 
To the object store specified by: 
java.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory 
java.naming.provider.url ldap://gwenig.coopsrc.com:389/ ou=sunmq,dc=coopsrc,dc=com 
java.naming.security.authentication simple 
java.naming.security.credentials netscape 
java.naming.security.principal cn=directory manager Object successfully added.

您可以使用 ldapsearch 或 LDAP 浏览器来查看新创建的对象。

有关在 LDAP 服务器上存储受管理对象的一节到此结束。请跳过下一节(介绍如何在文件中存储管理对象),并转到为该方案配置 JMS 侦听器适配器上的一节。

将管理对象存储到文件

可以将 PasswordSync 和 JMS 侦听器配置为使用文件中存储的受管理对象。如果未在 LDAP 服务器上存储管理对象(将管理对象存储到 LDAP 目录),请按照本节中的说明进行操作。

存储连接工厂对象

打开 Message Queue 命令行工具 (imqobjmgr),然后键入存储连接工厂对象中的命令以存储连接工厂对象并指定查找名。


示例 11–3 存储连接工厂对象并指定查找名称


#> ./imqobjmgr add -l "mytestFactory" -j 
"java.naming.factory.initial= com.sun.jndi.fscontext.RefFSContextFactory"
 -j "java.naming.provider.url=file:///home/gael/tmp" -t qf -o 
 "imqAddressList=mq://gwenig.coopsrc.com:7676/jms" 
Adding a Queue Connection Factory object with the following attributes: 
imqAckOnAcknowledge [Message Service Acknowledgement of Client Acknowledgements] 
... 
imqSetJMSXUserID [Enable JMSXUserID Message Property] false 
Using the following lookup name: 
mytestFactory 
The object’s read-only state: false 
To the object store specified by: 
java.naming.factory.initial com.sun.jndi.fscontext.RefFSContextFactory 
java.naming.provider.url file:///home/gael/tmp 
Object successfully added. 
To specify a destination: 
#> ./imqobjmgr add -l "mytestQueue" -j 
"java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory" 
-j "java.naming.provider.url=file:///home/gael/tmp" -t q -o 
"imqDestinationName=myTestQueue" 
Adding a Queue object with the following attributes: 
imqDestinationDescription [Destination Description] A Description for the Destination 
Object imqDestinationName [Destination Name] myTestQueue 
Using the following lookup name: 
mytestQueue 
The object’s read-only state: false 
To the object store specified by: 
java.naming.factory.initial com.sun.jndi.fscontext.RefFSContextFactory 
java.naming.provider.url file:///home/gael/tmp 
Object successfully added.

在代理上创建目的地

默认情况下,Sun Message Queue 代理允许自动创建队列目的地(请参见 config.properties,其中 imq.autocreate.queue 的默认值为 true)。

如果没有自动创建队列目的地,则必须使用在代理上创建目的地(其中 myTestQueue 为目的地)中所示的命令在代理上创建目的地对象。


示例 11–4 在代理上创建目的地对象


name (Queue name): 
#> cd /opt/sun/mq/bin 
#>./imqcmd create dst -t q -n mytestQueue 
Username: <admin> 
Password: <admin> 
Creating a destination with the following attributes: 
Destination Name mytestQueue 
Destination Type Queue On the broker specified by: 
------------------------- 
Host Primary Port 
------------------------- localhost 7676 
Successfully created the destination.

您可以将管理对象存储到目录或文件:

为该方案配置 JMS 侦听器适配器

在应用服务器上配置 JMS 侦听器适配器。请按照添加和配置 JMS 侦听器适配器一节中的说明进行操作。

配置活动同步

然后,配置 JMS 侦听器以进行同步。如果使用的是 JMS,则需要活动同步,但不会将其用于直接连接。

Procedure配置 JMS 侦听器以进行同步

  1. 在管理员界面中,单击菜单中的“资源”。

  2. 在资源列表中,选中“JMS 侦听器”复选框。

  3. 在资源操作列表中,选择“编辑同步策略。”

    将打开 JMS 侦听器资源的“编辑同步”页(图 11–15)。

    图 11–15 为 JMS 侦听器配置活动同步

    该图显示了JMS 侦听器资源的“编辑同步”页

  4. 在“通用设置”下找到“代理管理员”,然后选择 pwsyncadmin。(此管理员与空表单相关联。)

  5. 在“通用设置”下找到“进程规则”,然后从列表中选择“同步用户密码”。默认的同步用户密码工作流接受来自 JMS 侦听器适配器的每个请求并签出 ChangeUserPassword 查看器,然后再签回 ChangeUserPassword 查看器。

  6. 在“日志文件路径”框中,指定创建活动和归档日志文件时所在的目录路径。

  7. 出于调试目的,请将日志级别设置为 4 以生成详细日志。

  8. 单击“保存”。

测试配置

    您可以使用 Windows PasswordSync 配置应用程序来调试 Windows 端的配置。

  1. 如果尚未运行 PasswordSync 配置应用程序,请启动该应用程序。

    默认情况下,此配置应用程序安装在 "Program Files" -> "Sun Java System Identity Manager PasswordSync" -> "Configuration" 中。

  2. 在显示“PasswordSync 配置”对话框时,单击“测试”按钮。

  3. 如果使用的是 JMS,将显示“测试连接”对话框,并出现一则消息,指出是否已成功完成测试连接。

    该图显示了示例测试连接成功消息。
  4. 单击“关闭”关闭“测试连接”对话框。

  5. 单击“确定”以关闭“PasswordSync 配置”对话框。

    之后,JMS 侦听器适配器将在调试模式下运行,并生成包含调试信息的文件(类似于下图中的文件)。

    该图显示了示例调试信息文件

在 Windows 上调试 PasswordSync

PasswordSync 将所有故障写入 Windows 事件查看器。(有关使用事件查看器的帮助,请参见 Windows 帮助。)错误日志条目的源名称是 PasswordSync

有关在 Windows 上排除 PasswordSync 故障的信息,请参见《Sun Identity Manager 8.1 System Administrator’s Guide》

在 Windows 上卸载 PasswordSync

要卸载 PasswordSync 应用程序,请转到 Windows 的“控制面板”并选择“添加或删除程序”。然后选择 "Sun Java System Identity Manager PasswordSync" 并单击“删除”。


注 –

通过加载 Identity Manager 安装介质并单击 pwsync\IdmPwSync.msi 图标也可以卸载(或重新安装)PasswordSync。


必须重新启动系统才能完成该过程。

有关 PasswordSync 的常见问题

本节解答了有关 PasswordSync 的一些常见问题。

问题:

在不使用 Java Messaging Service 的情况下能否实现 PasswordSync?

回答:

可以,但这样做会牺牲使用 JMS 跟踪密码更改事件的好处。

要在不使用 JMS 的情况下实现 PasswordSync,请使用以下标志启动配置应用程序:

Configure.exe -direct

指定 -direct 标志后,配置应用程序将显示“用户”选项卡。

如果在不使用 JMS 的情况下实现 PasswordSync,则不必创建 JMS 侦听器适配器。因此,应忽略在应用服务器上部署 PasswordSync中列出的过程。如果要设置通知,您可能需要改变“更改用户密码”工作流。


注 –

如果您随后运行配置应用程序而不指定 -direct 标志,则必须配置 JMS 才能实现 PasswordSync。请使用 -direct 标志重新启动应用程序,以便再次绕过 JMS。


问题:

PasswordSync 是否可以与用于强制执行自定义密码策略的其他 Windows 密码过滤器一起使用?

回答:

是,可以将 PasswordSync 与其他 _WINDOWS_ 密码过滤器一起使用。然而,必须是通知软件包注册表值中列出的最后一个密码过滤器。

必须使用以下注册表路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages (value of type REG_MULTI_SZ)

默认情况下,安装程序将 Identity Manager 密码拦截设置在列表末尾处。但是,如果您在安装该软件后安装了自定义密码过滤器,则需要将 lhpwic 移到通知软件包列表的结尾处。

可以将 PasswordSync 与其他 Identity Manager 密码策略一起使用。如果在 Identity Manager 服务器端选择了策略,必须传递所有资源密码策略以将密码同步推出至其他资源。因此,您应该使 Windows 本机密码策略的严格程度与 Identity Manager 中定义的最严格的密码策略相同。


注 –

密码拦截 DLL 并不强制执行任何密码策略。


问题:

是否可以将 PasswordSync Servlet 安装在 Identity Manager 以外的其他应用服务器上?

回答:

是。除了 JMS 应用程序需要的任何 jar 文件以外,PasswordSync Servlet 还需要 spml.jaridmcommon.jar jar 文件。

问题:

PasswordSync 服务是否将密码以明文发送到 lh 服务器?

回答:

虽然最佳做法是通过 SSL 运行 PasswordSync,但在将所有敏感数据发送到 Identity Manager 服务器之前将对其进行加密。

有关信息,请参见将 PasswordSync 配置为使用 SSL

问题:

为什么进行某些密码更改会导致 com.waveset.exception.ItemNotLocked

回答:

如果启用 PasswordSync,密码更改(即使从用户界面启动)将导致资源的密码更改,从而致使资源与 Identity Manager 进行通信。

如果正确配置了 passwordSyncThreshold 工作流变量,则 Identity Manager 将检查用户对象并确定该用户对象是否已经处理了密码更改。但是,如果用户或管理员同时对同一个用户进行了其他密码更改,则用户对象将被锁定。