跳转至

Web 资产⚓︎

  • Web 资产是 JumpServer 支持的一种资源,旨在通过远程应用程序访问 Web 系统。它们适用于集中管理内部系统、SaaS 服务或其他基于 Web 的应用程序。
  • Web 资产依赖于远程应用程序发布者,这些发布者可以部署在 Windows 或 Linux 系统上。
  • 当用户连接到 Web 资产时,系统会自动调用发布者以启动访问目标系统的预配置浏览器。这种方法可以实现安全和受控的访问,有效防止用户直接访问目标地址。

1 创建 Web 资产⚓︎

使用 Web 类型资产时需要提前配置远程应用发布机,详细配置见远程应用

  • 点击 资产列表-Web
  • 点击页面左上角的 创建 按钮,选择 Web 类型资产,进入资产创建页面,填写资产详细信息。

详细参数说明:

参数 说明
名称 必填项,该资产在 JumpServer 中的名称,与资产本身计算机名无关,不可重名。
IP/主机 必填项,网页的真实地址,支持域名、IP地址。允许重复。如果端口号不是 80 或 443,请包括端口号。
资产平台 默认项,Web 类型资产的资产平台。
节点 必填项,该资产所属于的节点。
选择器 必填项,选择代填模式,详细配置见本文自动代填
协议 默认项,默认 HTTP/HTTPS 协议。
账号列表 可选项,用于登录该资产的账号,可创建多个账号。账号与资产绑定。
网域 可选项,针对某些跨网段资产,需要以网域网关为代理进行访问。Web资产默认不支持网关,此选项仅对网网关机器信息做标注
标签 可选项,给该资产添加的标签,方便管理。Web 同时支持通过标签指定特定的远程应用发布机访问。
激活 必选项,该资产是否可使用。
备注 可选项,资产信息描述。

2 自动代填⚓︎

  • 自动代填功能主要用于需要用户身份验证的网站。在用户访问此类网站之前,JumpServer 会自动在登录页面填写预定义的用户名和密码以完成身份验证。此过程对用户是透明的,无需手动输入凭据。

2.1 禁用代填⚓︎

  • 此禁用方法适用于不需要身份验证的网站。

2.2 基本代填⚓︎

  • 基本方法适用于用户名、密码和登录按钮都在同一页面上的网站。JumpServer 会自动填写凭据并提交表单以对用户进行身份验证。

  • 自动代填信息时,需要在网页上定位元素。支持的选择器类型包括名称选择器、ID 选择器、类选择器、CSS 选择器和 XPath 选择器。有关更多信息,请参阅Selenium Python:定位元素.

2.3 脚本代填⚓︎

  • 此脚本方法适用于具有复杂登录程序的网站。它支持高级自动化,包括多步骤身份验证和与动态页面元素的交互。

2.3.1 脚本结构⚓︎

  • 这里的脚本是一个数组,其中每个元素都是一个字典,代表脚本中的一个步骤。

  • 每个步骤都包含以下键:

Key Description
step 必填项。
整数。
指示脚本的执行顺序,从 1 开始,依次递增。
value 必填项。
字符串。
支持的内置变量:{USERNAME}、{SECRET}。
如果命令不是类型,请将值保留为空字符串。
target 必填项。
字符串。
要作的目标元素,可以是选择器或 XPath 表达式。
command 必填项。
字符串。要执行
的命令,可以是以下命令之一:单击、键入、睡眠select_frame。
Command Description
click 单击目标元素。
type 在目标元素中键入值。
sleep 暂停脚本指定的持续时间,通常是为了允许在导航期间加载页面。持续时间
由目标指定,以秒为单位。
select_frame 切换到指定的iframe进行作。
目标支持 id=iframe_id、name=iframe_name 或 index=1 等选项(如果 index < 0,则切换回默认/主 iframe)。

2.3.2 脚本示例⚓︎

[  // 切换到 id=iframe_id 的 iframe。
    {      
        "step": 1,      
        "command": "select_frame",      
        "target": "id=iframe_id",      
        "value": ""  
    },  
    // 在输入字段中输入用户名,name=username。
    // 执行脚本时,{USERNAME} 变量将替换为实际的用户名。
    {      
        "step": 2,      
        "command": "type",      
        "target": "name=username",      
        "value": "{USERNAME}"  
    },  
    // 单击下一步按钮继续登录过程的下一步。
    {      
        "step": 3,      
        "command": "click",      
        "target": "id=next_button",      
        "value": ""  
    },  
    // 暂停脚本 5 秒钟以允许加载下一页。
    {      
        "step": 4,      
        "command": "sleep",      
        "target": "5",      
        "value": ""  
    },  
    // 在输入字段中输入密码,name=password。
    // 执行脚本时,{SECRET} 变量将替换为实际密码。
    {      
        "step": 5,      
        "command": "type",      
        "target": "name=password",      
        "value": "{SECRET}"  
    },  
    // 单击提交按钮以完成登录过程。
    {      
        "step": 6,      
        "command": "click",      
        "target": "id=submit_button",      
        "value": ""  
    }
]