密码重置插件

保障 IT 环境中所有特权资源和账户的安全,是防范未经授权访问和网络威胁的关键步骤。PAM360 支持对 IT 环境中多种常用资源类型(如 Windows、Windows 域、Linux、macOS 等)进行远程密码重置。

然而,在复杂的 IT 环境中,组织通常会使用各种自建、遗留或专有系统,这些系统可能未采用标准认证机制,导致难以通过常规方式安排密码重置。为解决这一问题,PAM360 提供了密码重置插件,允许您添加自定义实现类,并对 PAM360 原生不支持的资源类型强制执行自动密码重置,这些资源类型可能包括:

  • 旧系统:使用非标准身份验证方法的旧版应用程序或服务器。
  • 内部应用程序:需要管理其服务账户或管理员密码的自建应用程序。
  • 专有设备:需要采用特定、独特方法来更改凭据的硬件或软件。

此外,管理员可利用访问控制工作流管理遗留资源,并在资源被使用时启用自动密码重置。本文档详细涵盖以下主题:

  1. 角色与权限
  2. 密码重置插件如何工作?
  3. 创建自定义实现类
  4. 添加密码重置插件
  5. 批准密码重置插件
  6. 将密码重置插件关联为自定义资源类型的重置方法

1. 角色与权限

默认情况下,拥有“特权管理员”和“管理员”角色的用户可在 PAM360 中添加、管理和配置密码重置插件。此外,PAM360 允许管理员在“管理>>自定义>>角色>>自定义设置”中配置具有“管理密码重置插件”权限的自定义用户角色,以便添加、管理和批准密码重置插件。

2. 密码重置插件如何工作?

密码重置插件主要是一个实现类,管理员可在 PAM360 中手动添加。该插件可由 PAM360 服务器调用,以对远程资源执行密码重置操作。针对属于自定义资源类型的资源,可单独配置密码重置插件。

当针对已关联密码重置插件的自定义资源类型中的资源触发密码重置时,PAM360 将调用该插件的接口方法。调用后,插件将首先连接到远程资源以重置密码。如果通过插件成功执行了密码重置,PAM360 随后将在其存储库中更新新密码。 该插件还支持对远程资源进行密码验证,以确保密码与 PAM360 存储库中本地保存的密码保持同步。

3. 创建自定义实现类

编写一个实现 RemotePasswordReset 接口的 Java 类:

	public interface RemotePasswordReset
    {
    public boolean changeRemotePassword(Properties resetPropsprop) throws Exception;
    public String getErrorMessage() throws Exception;
    public boolean verifyRemotePassword(Properties verifyProps) throws Exception;
    public boolean isDeviceAvailable(Properties verifyProps) throws Exception;
	public Pattern getDbNamePattern()
    }

3.1 实现说明

	// 此类提供用于实现密码重置插件的方法。您需要实现该接口
    public interface RemotePasswordReset
    {
    /**
    * 用于在执行密码重置和验证操作时显示错误消息。输出内容将反映在审计日志中。
    * @return 错误消息,如果密码重置成功,则返回 null。否则,返回相应的错误消息。
	*/

    public boolean changeRemotePassword(Properties resetProps) throws Exception;
    /** 每当触发“更改远程密码”功能时将被调用的实际函数
    *@param resetProps 将包含有关触发密码重置的账户的所有详细信息。
    * @return 将发送至 PAM360 服务器的最终输出。
	* {@value true} 成功情况 - 允许操作继续进行。
    * {@value false} 失败情况 - 拒绝操作继续进行。
    **/

    public String getErrorMessage() throws Exception;
    /*** 用于在执行远程密码重置和验证操作时显示错误消息。该输出将反映在审计日志中。
    * 返回相应的错误消息。 
	*/

    public boolean verifyRemotePassword(Properties verifyProps) throws Exception; 
    /** 每当触发“验证远程密码”功能时,将调用此函数。
    *@param verifyProps 将包含触发“验证远程密码”操作的账户的所有详细信息。
    *@return 将发送至 PAM360 服务器的最终输出。
	*{@value true} 成功情况 - 允许操作继续进行。
    *{@value false} 失败情况 - 拒绝操作继续进行。
    **/

    public boolean isDeviceAvailable(Properties verifyProps) throws Exception; }
    /** 在调用“验证远程密码”函数之前,将调用此函数以检查触发密码验证的设备是否可用。
	*@param verifyProps 将包含触发“验证远程密码”操作的账户的所有详细信息。
    *@return 将发送至 PAM360 服务器的最终输出。
    *{@value true} 成功情况 - 允许操作继续进行。
    *{@value false} 失败情况 - 拒绝操作继续进行。
	**/ 

    public Pattern getDbNamePattern();
    /** 此方法用于在启动 SQL 会话时,验证 SQL 资源中用于连接的数据库名称。
    *@return 用于验证数据库名称的正则表达式
    (或)
    *@return 若非 SQL 资源且无需验证,则返回 null **/

3.2 编译

编译时请使用位于 <PAM360-安装目录>\lib 文件夹中的以下 jar 文件

  • AdventNetPassTrix.jar;
  • json_simple-1.1.jar;

例如:

  • Windows - javac -d . -cp AdventNetPassTrix.jar;json_simple-1.1.jar; JiraServerResetImplementation.java
  • Linux - javac -d . -cp AdventNetPassTrix.jar:json_simple-1.1.jar; JiraServerResetImplementation.java

3.3 实现提示

您可以设计实现类,使所需的资源和账户参数作为参数传递,并在类内部直接访问。

参数 描述

resetProps.get("RESOURCEID");

返回一个表示资源 ID 的 Long 对象。

resetProps.get("ACCOUNTID");

返回一个表示账户 ID 的 Long 对象。

resetProps.get("OLDPASSWORD");

返回一个包含该账户旧密码的 String 对象。

resetProps.get("NEWPASSWORD");

返回一个 String 对象,其中包含为该账户设置的新密码。

resetProps.get("RESOURCENAME");

返回一个包含资源名称的字符串对象。

resetProps.get("DNSNAME");

返回一个字符串对象,其中包含资源的 DNS 名称。

resetProps.get("ACCOUNTNAME");

返回一个包含账户名称的字符串对象。

resetProps.get("OSTYPE");

返回一个包含资源操作系统类型的字符串对象。

resetProps.get("NOTES");

返回一个字符串对象,其中包含在账户详情下添加的备注。

resetProps.get("LOGINNAME");

返回一个字符串对象,其中包含发起密码重置的用户的登录名。

resetProps.get("IPADDRESS");

返回一个字符串对象,其中包含资源的 IP 地址。

resetProps.get("RESOURCEDETAILS");

返回一个 ResourceDetails 对象,其中包含该资源的所有其他详细信息。



4. 添加密码重置插件

请按照以下步骤在 PAM360 中添加密码重置插件:

  1. 导航至“管理”>>“密码管理”>>“密码重置插件”。
    password-reset-plugin-1
  2. 在弹出的“添加密码重置插件”页面中,输入以下信息:
    • 插件名称- 在此字段中输入要添加的插件名称。
    • 实现类- 在此字段中指定您的实现类名称。请确保在指定类名时包含包名。例如,“com.manageengine.helpdesk.JIRASecretResetPlugin”。
    • 发送审批请求至- 从下拉菜单中选择一位审批管理员。系统将向所选管理员发送审批请求,经批准后插件将被添加。
  3. 点击“保存”以保存配置更改。
  4. 点击“保存”后,系统将向所选管理员发送一封关于添加密码重置插件请求的电子邮件。此外,您环境中的所有管理员都将收到该请求的通知。任何具有管理员权限的用户均可批准该请求。

5. 审批密码重置插件

默认情况下,具有管理员类型用户角色的用户可以在 PAM360 中添加密码重置插件。此外,管理员添加的所有密码重置插件均需由另一位管理员批准,以确保重置插件中仅调用经过授权且必要的脚本或程序。请按照以下步骤批准密码重置监听器请求:

  1. 导航至“管理”>>“密码管理”>>“密码重置插件”。
  2. 在“密码重置插件”页面上,您将看到该环境中已添加的所有插件列表。
  3. 点击“审批状态”列下您想要批准的插件旁边的“批准”按钮。

请求经管理员批准后,即可将其用作密码重置方法,用于重置自定义资源类型的密码。

6. 将密码重置插件关联为自定义资源类型的重置方法

请按照以下步骤将密码重置插件与自定义资源类型关联,以执行远程密码重置。

  1. 转到“资源”选项卡,并点击顶部窗格中的“资源类型”按钮。
  2. 在弹出的“资源类型”页面上,点击所需自定义资源类型旁边的“编辑”图标。点击此链接查看在 PAM360 中添加自定义资源类型的详细步骤。
  3. 在弹出的“编辑资源类型”窗口中,切换至“高级”选项卡,启用“密码重置插件”单选按钮,并在“类似于”下拉字段中从“重置方法”中选择所需的插件。所有已批准的密码重置插件都将可用。
    password-reset-plugin-2

只要存在有效的远程密码重置配置,每当触发密码重置操作时,配置好的密码重置插件就会自动被调用。请参考 链接中提供的示例实现类,该类旨在重置 Jira Service Desk 的用户账户密码。您可以在密码重置插件中使用此代码,为 Jira Service Desk 账户启用自动密码重置功能。

注意

下载文件后,请通过确认 SHA256 校验和值与下方提供的值是否一致来验证文件完整性: d72f5f4c76418597426a5590ea800204ce4e510e290f51985202ec1c372ccd0b






Top