一、 新特性概述
作为堡垒机纳管的一项重要资产,应用发布是一个近年来使用频率逐渐提升的功能,企业所拥有的大量Web系统和日常使用的C/S工具,希望能够通过堡垒机进行托管和审计,一些典型的场景如:OA系统访问、Web控制台访问、网络设备客户端的使用、数据库工具的使用等等。
在行云堡垒历史版本中,由于采用的技术路线问题,存在了一些缺陷,如:
- 部分C/S应用由于采用非标准化Windows控件开发无法实现代填;
- 部分B/S应用在某些复杂场景下无法实现代填,缺少Sleep、Waitfor等事件类型;
- 数据库应用工具需要进行特殊处理,用户无法自行发布数据库应用工具,而产品内置的数据库应用工具并不满足客户需求;
- 每个应用只能保存一份账号密码,若有多个用户需要使用该应用且账号密码不一致,就需要创建多个应用,在用户数量较大时,会产生大量的应用资产;
在V7.4版本中,我们对应用发布功能进行了大幅重构,通过引入新的技术架构,支持用户自定义应用工具、编写代填脚本,完善了对应用参数代填的逻辑,确保应用代填的成功率能够达到99%以上。
另外对应用资产和应用的访问凭据进行解耦,使得一个应用能够关联多份访问凭据,访问凭据可以分配给不同用户使用,确保团队成员可以使用各自的账号密码来访问应用,大幅减少应用资产的数量。
下面,我们对7.4版本中,应用的纳管流程进行了一个简单介绍,让大家提前了解一下新版本中应用的管理流程以及能力。
二、 发布应用工具
由于需要纳管Web以及C/S应用,因此我们也将发布工具分成浏览器工具以及C/S工具两种类型,我们来分别了解一下这两类工具的发布过程和能力。
2.1 浏览器工具
浏览器工具,用于访问Web应用,目前可以支持Chrome、Edge、Firefox这三类浏览器工具:
发布一个浏览器工具,需要简单设置一些信息以及定义代填脚本后,即可完成工具的发布。下面以登录百度统计为例来做说明,这个网页,需要进行点击登录按钮、输入用户名、输入密码等各种复杂的动作,我们来将此网页的登录动作发布成一个Web应用来实现代填。
(1)设置工具信息
工具信息是指配置该工具的名称、类型、启动方式等,是决定后续应用参数代填的重要依据。这一步,我们分别选择“浏览器工具”、“chrome浏览器”、“Puppeteer引擎”,其它项按实际情况填写即可。
(2)定义代填参数
这个网页,需要输入用户名、密码即可实现登录,那么我们可以定义如下的代填参数:
- URL
URL是代填参数里固定需要填写的值,直接写入Web应用的入口URL,这里是:https://tongji.baidu.com/
- 其它参数
除了固定的URL参数外,还需要定义用户名和密码两个代填参数,在这里,只需要定义好参数的名称和标识即可,名称用于管理员对参数的识别,建议使用中文,标识用于后续代填脚本的参数引用,建议使用英文。该示例中,我们定义以下参数:
- 名称:用户名,标识:username,非密码类型
- 名称:密码,标识:password,密码类型
(3)编写代填脚本
定义好了代填参数后,接下来我们就要编写代填脚本,浏览器工具的代填脚本有两种编辑方式,一种是直接在向导中进行可视化编辑代填节点,另一种是选择提前编写好的python代填脚本文件(仅支持Playwright);
若采用可视化的操作,只需要在界面上添加各类动作节点即可,点击“增加节点”按钮,可以看到所支持的节点类型:
- 代填事件:即向各类Web文本控件中填写值,如输入框、选择框,可用于账号密码等的填写;
- 点击事件:点击某个dom节点对象,可用于点击链接、按钮等;
- 认证事件:用于浏览器自身提供的认证方式,该类型的事件一般用于较老的一些路由器等传统类型的Web应用认证,目前比较少见;
- 等待事件:即sleep事件,等待一段时间后再执行下一个节点的事件;
- 查找事件:即waitfor事件,等待某个dom节点出现后再执行下一个节点的事件;
在本示例中,需要点击页面“登录”链接,然后在登录对话框中,代填用户名(dom节点ID为uc-common-account)和密码(dom节点ID为ucsl-password-edit)两个文本输入框,然后再点击登录按钮(dom节点ID为submit-form)进行登录;因此,完整的代填脚本如下图所示:
(4)完成
上述步骤完成后,一个浏览器应用工具便发布完成了。
2.2 C/S工具
发布C/S工具流程与浏览器工具类似,但需要提前进行代填脚本的编写,没有提供可视化的编辑,最终的脚本,会是一个python文件。脚本文件准备好后,按照要求填写工具信息和定义参数即可。
(1)设置工具信息
(2)定义代填参数
C/S 工具无需定义URL,直接定义代填参数即可;
(3)编写代填脚本
代填脚本文件编写好后,请放在应用宿主机的“C:\tools\user_scripts”目录下,系统会自动将目录文件读取出来并展现在下拉列表中,您只需选择对应的脚本文件即可。
注意:您自定义的脚本文件,请务必放在“C:\tools\user_scripts”下,另一个关联目录“C:\tools\system_scripts”为系统内置脚本文件目录,由厂商维护,在升级时,可能会进行覆盖,若将您的自定义脚本放在此目录,在使用时虽然不会产生问题,但升级后可能会丢失文件。
(4)完成
上述步骤完成后,一个C/S应用工具便发布完成了。
三、 应用资产管理
3.1 发布应用资产
在应用工具发布完成后,您便可以基于这些工具来发布应用资产进行管理。
前往“资产运维/应用管理”功能菜单,点击“添加应用”按钮,在对话框中选择好前面发布的宿主机和应用工具,填写应用名称、所在目录等信息后,点击“确定”后,一个应用资产便发布好了。
3.2应用凭据管理
应用发布完成后,我们为了实现应用的访问,还需要为其录入应用访问时,所需要的账号、密码、端口等常见的参数(即在应用工具中所定义的代填参数)。
在应用列表中点击相应应用的“添加”链接(列表右侧),将直接弹出访问凭据配置界面。
接着再点击“新增参数代填凭据”,将弹出凭据配置窗口,填写凭证名称、相关参数、使用人。使用人允许指定多个团队成员。
确定后,可以看到刚才新增的凭据,如有需要,可以继续在该应用添加多个凭据,并指定给不同的团队成员使用。
在应用列表中可以看到刚才添加的“张三使用”凭据,若点击该凭据,便可使用该凭据的账号密码来访问应用。相比之前的版本,该特性可以让一个应用可以同时关联多个凭据,大幅减少应用资产的数量、降低应用配置工作。
3.3 访问应用
应用资产和凭据均配置完成后,接下来我们便可以直接访问应用了,下面,我们来看看这两类应用的访问效果吧。
访问Web应用
访问C/S应用
四、 数据库应用工具定义
在很多场景下,我们会希望发布一个数据库的C/S工具,并用其来访问数据库,譬如前面所发布的Navicat Lite。在V7.4版本中,允许用户将任意工具发布成数据库工具,并配合访问串来单点登录数据库,避免将数据库的明文密码外泄。
要想实现该目的,我们只需要在“应用运维管控/宿主机管理”中,找到该工具,并点击“配置”,弹出工具配置对话框;
在应用工具配置对话框中,我们切换到“数据库配置”,将“访问数据库”开关打开,并选择适用的数据库范围,例如这里我们选择Mysql。
再来到数据库管理界面,找到一个Mysql资产,点击某个凭证进行访问,在工具栏下,可以下拉找到前面发布的应用工具“Navicat Lite for Mysql”,选择这些工具,便可直接使用该数据库凭证直接访问数据库了,无需再额外去定义应用的访问凭据。
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:cloudbility
版权声明:本文为原创文章,版权归 行云管家 所有,欢迎分享本文,转载请保留出处!