密码重置监听器
密码重置是PAM360最重要的功能之一,用来保护敏感资源免受未经授权的访问。PAM360 支持通过调用脚本或可执行文件(称为密码重置监听器)来执行类似的任务。
使用密码重置监听器可以执行哪些后续操作?
- 密码重置后立即重新启动相关服务。
- 如果一个Windows服务使用一个被PAM360管理的本地帐户,密码重置监听器帮助更改相应的Windows服务的“登录凭证”(即在“登录”属性中指定的凭证)。
- 重置Windows定时任务和其他相关进程的密码。
- 对网络设备执行密码重置。 例如,您已经将网络设备的帐户添加为资源,那么您可以先在本地重置这些帐户的密码,然后调用自定义脚本连接到设备,并在设备中执行更改。
密码重置监听器的工作原理
密码重置监听器是一个脚本或可执行文件,每当在PAM360存储库中更改或重置帐户的密码时,您都可以调用该脚本或可执行文件。 即使对于本地密码更改,也可以调用此密码重置监听器,此外,针对PAM360不支持的资源,也可以引用该功能来重置密码。 您可以为每个资源类型(包括用户定义的资源类型)单独配置监听器脚本。
- 密码重置监听器脚本的调用方式与从调用密码的操作系统的命令提示符类似。
- 如果脚本需要另一个程序从命令提示符调用它,它可以作为该脚本的"预命令"提供(例如"cscript c:\script\changepassword.vbs old_password new_password"。
- 默认情况下,参数:资源名、 dns名、帐户名、旧密码、新密码将作为参数传递到脚本。
- 您还可以在调用脚本时按照指定的顺序在文本字段“附加参数”中指定、添加附加参数。
该脚本的运行权限与运行PAM360的用户权限相同。出于安全原因,该功能使用了双重控制机制,需确保至少两个管理员在PAM360调用脚本之前审查并批准脚本。在两个管理员都批准后,PAM360才会调用脚本。 例如,当管理员添加或编辑密码重置监听器时,PAM360 不会调用脚本,除非该脚本已得到其他管理员的批准。密码重置监听器的添加/编辑/删除操作需要得到PAM360中两个管理员的批准才能成功执行。这些操作也会被审计,以备将来参考。
密码重置监听器是从一个单独的线程调用的,所以它不会影响PAM360的密码重置进程。添加的监听器脚本与其他信息一样存储在PAM360 数据库中,这为PAM360提供安全性和备份保障。
配置密码重置监听器
- 导航到管理 >> 自定义 >> 密码重置监听器。
- 点击添加监听器。
- 如上所述,密码重置监听器脚本的调用方式与从调用密码的操作系统的命令提示符类似。 如果脚本需要另一个程序从命令提示符调用它,它可以作为该脚本的预命令提供(例如"cscript c:\script\changepassword.vbs old_password new_password )。
- 输入监听器的名称,浏览并添加监听器脚本。
- 默认情况下,资源名称、 dns 名称、帐户名称、旧密码和新密码等将作为参数传递到脚本。 如果需要传递其他参数,请使用文本字段"附加参数"来添加其他参数。 在调用脚本时,提供的其他参数将按给定的顺序传递给脚本。
- 您还可以指定要应用更改的资源类型,并向其他管理员发送审批请求。
- 填写完必要信息后,从下拉列表中选择一名管理员以发送审批请求。
- 点击保存。
谁可以添加密码重置监听器?
只有PAM360管理员可以添加密码重置监听器。此外,添加的所有监听器还应由第二个管理员的批准,以防止调用任意脚本相关的潜在风险。 因此,一旦管理员创建并保存监听器,该监听器将发送给其他管理员进行审批,并向该管理员发送一封邮件,通知审批请求。
要审批最近添加的密码重置监听器,如果您是管理员,而另一个管理员请求您审批监听器:
- 导航到管理 >> 自定义 >> 密码重置监听器
- 点击需要审批的监听器的批准状态列下的链接。
- 批准后,监听器将生效。
监听器的创建、编辑、删除和批准事件都会进行审计。
自定义监听器
除了重置监听器外, PAM360 还允许您通过"自定义监听器"提供自己的实现类。 自定义监听器基本上允许您提供自己的监听器实现类,它为执行密码重置的后续操作提供了灵活性,而不是只让 PAM360 执行您提供的监听器脚本。
如何创建自定义监听器?按照以下步骤创建自定义监听器:
第 1 步:编写自己的实现类实现PAM360监听器接口(参考下面的实例)。
步骤 2:配置PAM360 GUI在PAM360 GUI中为实现类添加条目。
第 3 步:将实现类保存为.jar文件,并放入PAM360 中。步骤 4:重启PAM360。
参考实现
为了更好地说明如何在PAM360中拥有自己的监听器实现,我们下面提供一个参考实现。 此实现用于使用重置监听器执行PowerShell脚本。
步骤 1- 编写自己的实现类:您需要编写自己的类来实现PAM360ListenerInterface.java,如下所述。
-
public interface PAM360ListenerInterface {
static final Logger LOG = Logger.getLogger(PAM360ListenerInterface.class.getName());
public String executeListener(Properties resourceProps, Properties accountProps, String listenerFilePath, String oldPassword) throws Exception;
}
您可以只用以下方式来实现您的类:把资源属性(PAM360中的资源和帐户)作为参数获取。例如,如果你需要'Resource Name',你可能需要这样做:
resourceProps.get("RESOURCENAME")
您可以从下面列出的主键列表中获取某个属性的值。
资源属性(resourceProps)
RESOURCENAME -PAM360中添加的资源的名称
IPADDRESS -DNSNAME或资源地址
RESOURCEURL - 为资源配置的资源URL
DOMAINNAME - 资源的类型为WindowsDomain,则域名
SSHPORT - SSH端口(如果设备可以通过SSH连接)
RESOURCEDESC - 资源的描述
LOCATION - 资源的地点
DEPARTMENT - 资源所属的部门
所有资源自定义列名称(标签名称就是键名)
账户属性(accountProps)
DESCRIPTION - 帐户描述
LOGINNAME - 添加到 PAM360的帐户登录名
PASSWORD - 帐户的密码
DOMAINNAME - 域名(如果添加的帐户是域帐户)
COMPLIANTSTATUS - 当前密码是否符合PAM360中设置的密码策略
COMPLIANTREASON - 密码不符合密码策略的原因
EXPIRYSTATUS - 密码过期状态
PASSWRDSYNCSTATUS - 如果密码与远程资源上设置的密码同步,则提供信息
所有账户自定义列名称(标签名称就是键名)
其他参数
- 监听器文件路径 - 监听器调用的脚本/文件的路径,您也可以在配置监听器时提供脚本/文件。
- 旧密码 - 将旧密码传递到实现类以执行密码重置。
PowerShell脚本的实现示例
public class PowerShellListener implements PAM360ListenerInterface
{
public String executeListener(Properties resourceProps, Properties accountProps, String listenerFilePath, String oldPassword) throws Exception {
String message = "Executed Successfully";// 用于审计
// 获取属性
//调用powershell脚本
}
}
步骤 2: 在PAM360中的配置步骤
在PAM360 GUI中为实现类添加条目。 导航到管理 >> 密码重置监听器 >> 添加监听器。
- 点击"添加监听器"。
- 在打开的窗口中,选择"自定义监听器",再点击"立即添加"。
- 输入新实现类的名称并添加您的实现类。
- 为实现类添加条目,并在描述中提供有关实现类的信息。
- 输入具有扩展名的监听器脚本的名称,点击浏览,选择监听器脚本。
- 您还可以指定要应用更改的资源类型,并向其他管理员发送审批请求。
- 点击"保存"。
第 3 步:将实现类存储为.jar文件并将其放到PAM360中
您需要将实现类转换为.jar文件,并将其放入<PAM360安装目录>/lib目录中。
步骤 4:重启PAM360
完成上述步骤后,您需要重新启动PAM360以使以上配置生效。