密码重置监听器

密码重置是PMP中的一个重要功能。在PMP中重置了账户之后,可以自动执行一些动作。我们可以通过密码重置监听器来实现。

举例:

  • 密码重置之后立即重启相关服务。
  • 如果一个Windows服务指定的账户密码在PMP中更改了,你可以使用监听器机制来更改“存储的密码”(在服务的登录页签中指定的凭证)。
  • 如果您在PMP中添加了网络设备的账户作为资源/账户,可以先在本地重置该账户的密码,然后调用自定义脚本连接到该设备,执行密码更改。
  • 重置Windows计划任务或其它相关过程的密码。

密码重置监听器是如何工作的?

当PMP中的账户密码被修改时,调用脚本或指定的可执行文件。这个脚本或者可执行文件就是我们所说的密码重置监听器。您可以对所有类型的资源配置密码重置监听器,包括自定义的资源类型。因此,密码重置监听器机制是非常有用的,尤其对于默认不支持远程密码重置的资源类型。

  • 密码重置监听器的调用效果就像直接在系统命令行执行效果一样的。
  • 如果脚本需要其他程序从命令行执行,请提供“启动程序”(例如:cscript c:\scripts\changepassword.vbs 旧密码 新密码)
  • PMP将在脚本调用的时候依次传递这些参数:资源名、DNS名称、账户名称、旧密码和新密码
  • 在调用脚本时,您还可以指定的额外的参数。

运行脚本的权限与运行PMP服务器的用户权限相同。为了防止脚本滥用风险,将使用一个双重控制机制,在PMP调用脚本之前要保证有两个管理员知道并批准。一个管理员添加了密码重置监听器后,只有经另外一个管理员批准后才生效。当密码重置监听器被一个管理员编辑后也要执行相同的处理流程。这些操作可以由两个管理员来执行并添加到审计记录中。

密码重置监听器使用单独的线程,所以不会影响PMP的密码重置。密码重置监听器脚本将保存在数据库中,为你提供加密、备份等安全保障。

如何设置密码重置监听器?

前提条件

在设置之前,准备好你的脚本/可执行文件。 PMP只调用该脚本,不控制其执行过程,不处理其执行结果。所以,在创建脚本时做好一切准备。

设置密码重置监听器

  • 打开“管理” >> “定制” >> “密码重置监听器”
  • 在打开窗口中,点击添加监听器按钮。
  • 如上所述,密码重置监听器的调用效果就像直接在系统命令行执行效果一样的。如果脚本需要其他程序从命令行执行,请提供“启动程序”(例如:cscript c:\scripts\changepassword.vbs 旧密码 新密码)
  • 为创建的监听器起个名称。
  • 浏览找到监听器脚本。
  • 默认的,脚本参数为:资源名、DNS名称、账户名称、旧密码、新密码。如果你需要其他参数,在“附加参数”中输入。
  • 指定关联的资源类型

监听器审批

    如上所述,为了避免监听器脚本滥用,添加一个监听器必须涉及2个管理员。

    只有PMP管理员可以添加监听器。添加的监听器必须通过另外一个管理员的审批。所以,刚创建的监听器是等待审批的状态。选择管理员,发送审批请求。该审批请求将通过邮件发送给管理员。

    如果你是管理员,收到其他管理员发送的审批请求,你可以打开“管理” >> “定制” >>点击“密码重置监听器”,批准后监听器才生效。

  • 点击“保存”

监听器创建和审批都会记录到PMP的审计记录中。

自定义监听器

(只有企业版提供该功能。)

Password Manager Pro允许你通过“自定义监听器”提供自己的密码重置监听器实现。自定义监听器要求你提供自己的实现类,代替PMP提供的执行脚本类。让你的密码重置后执行的动作更加的灵活。

如何创建自定义监听器?

创建自定义监听器的总体步骤:

步骤1: 写你的实现类

实现PMPListenerInterface接口

步骤2: 在PMP界面中配置

在PMP界面中配置你的实现类。

步骤3: 把你的类打包为.jar文件,并加入到PMP中。

步骤4: 重启PMP

为了解释如何写你的实现类,下面给出一个例子。这个实现是用于执行PowerShell脚本的。

步骤1: 写你的实现类

你的类要实现PMPListenerInterface.java。详细说明如下:

    public interface PMPListenerInterface {
    static final Logger LOG = Logger.getLogger(PMPListenerInterface.class.getName());
    public String executeListener(Properties resourceProps, Properties accountProps, String listenerFilePath, String oldPassword) throws Exception;
    }

你的类需要的资源/账户属性可以从参数中获得。例如你需要“资源名称”,可以这样:

resourceProps.get("RESOURCENAME")

所有属性列表如下:

资源属性(resourceProps)

RESOURCENAME - Password Manager Pro中添加的资源名称
IPADDRESS - 资源的主机名或IP地址
RESOURCEURL - 为资源配置的URL
DOMAINNAME - 如果资源类型是Windows域,其域名
SSHPORT - 如果设备提供SSH服务,其SSH端口
RESOURCEDESC - 资源描述
LOCATION - 资源位置
DEPARTMENT - 资源所属部门
所有自定义字段名(自定义字段标签名)

账户属性(accountProps)

DESCRIPTION - 账户描述
LOGINNAME - 账户登录名称
PASSWORD - 账户的密码
DOMAINNAME - 如果是域用户,其域名
COMPLIANTSTATUS - 密码是否符合PMP密码策略要求
COMPLIANTREASON - 不符合PMP密码策略的原因
EXPIRYSTATUS - 密码过期状态
PASSWRDSYNCSTATUS - 密码的同步状态
所有自定义字段名(自定义字段标签名)

其他参数

  • listenerFilePath - 要执行的脚本文件路径。也可以在后面的步骤5中提供。
  • oldPassword - 提供旧密码,帮助实现类执行密码重置。

简单的PowerShell脚本执行实例

public class PowerShellListener implements PMPListenerInterface {
public String executeListener(Properties resourceProps, Properties accountProps, String listenerFilePath, String oldPassword) throws Exception {
String message = "Executed Successfully";// used for audit reason
// 获取各种属性值
// 调用PowerShell脚本
}
}

步骤2: 在PMP界面中的配置

打开管理 >> 密码重置监听器 >> 添加监听器,在打开的窗口中选择“自定义监听器”,输入如下信息:

  • 类名 - 这里列出所有实现监听器接口的类。
  • 新类名 - 如果你要添加自己的实现类,在这里输入其名称。
  • 实现类 - 你的类的完整路径,包括包名。例如:com.adventnet.passtrix.listener.PowerShellListener
  • 描述- 类的描述信息。
  • 监听器名称 - 指定自定义监听器脚本名称及其扩展名。将在命令行执行时使用。
  • 监听器脚本 - 浏览找到监听器脚本。如果你已经在你的类中定义了脚本路径,或者你确定使用API执行密码重置,可以跳过此步。这里提供的脚本将加密存储在数据库中。并且最终执行的是数据库中的脚本。
  • 资源类型 - 选择关联自定义监听器脚本的资源类型。
  • 发送批准请求到 - 为确保脚本不被滥用,该监听器要经过其他管理员批准。
  • 点击“保存”
  • 监听器创建和审批都会记录到PMP的审计记录中。

步骤3: 把你的类打包为.jar文件,并加入到PMP中

你要把类打包为.jar文件,放到<PMP_安装目录>/lib文件夹中。

步骤4: 重启PMP

完成以上步骤后,你要重新启动PMP使你的配置生效。

版权所有 ©2016, 卓豪(北京)技术有限公司,保留一切权利。

顶部