Files
wecom_it_smart_desk/docs/联软终端安全系统集成分析.md
T

36 KiB
Raw Blame History

联软LV7000终端安全管理系统集成分析

基于联软LV7000系列LeagView5版本API接口说明文档(202210SP v1.1 分析日期:2026-06-11 分析人:IT智能服务台项目组


一、联软API全景概览

1.1 认证机制

联软提供三层认证,灵活度高于火绒:

认证模式 说明 适用场景
白名单IP验证(默认启用) 配置WhiteListServerIp允许的调用方IP 内网系统间调用
用户名密码验证 配置ApiAccount+ApiPassword,调用时传apiAccount+apiPassword+validatekey 跨网段调用
一次性Token验证 先调/token?act=getToken获取token(默认30分钟有效),业务接口带token参数 安全要求高的场景

端口30098(所有API统一端口)

响应格式统一

{
    "status": "SUCCESS | ERROR | INVALID | Exceed",
    "msg": "描述信息",
    "rows": [...],      // 数据列表(部分接口用"row"
    "total": 100         // 总记录数
}
  • SUCCESS:成功
  • ERROR:参数错误/业务失败
  • INVALID:无权限(IP不在白名单)
  • Exceed:数据量超限(仅仿冒设备接口)

1.2 API端点分类总览(68个)

大类 数量 核心端点 对IT服务台价值
终端设备 8 queryDevByParams, getDevAllInfo, querysoftwarebydev 极高
准入控制 7 existOnlineUser, onlineUserList, forcedOffline, queryAccessLog
组织架构/用户 8 getUserInfo, getUserInfoByAccount, getAllOrgInfo, getDeptInfo 极高(映射)
审计查询 4 queryCommonAuditInfo, queryClientPatchAuditInfo
安全策略 5 getSecScopeByName, addSecpolicyScope
审批流程 12 queryapprovallist, doapproval, endapproval
免检设备 6 addByMac, delByMac, queryCheckDevList
访客/外协 8 getGuestAccount, create, find, applyOutsource
其他 10 noticeAgentMsg, remoteWakeUp, queryCounterfeitList

1.3 核心API详解(对IT服务台有价值的端点)

1.3.1 🔴 P0级 — 终端设备查询

查询指定终端设备 queryDevByParams

  • URL: http://{IP}:30098/terminal?act=queryDevByParams
  • 这是最核心的接口!返回字段包含:
istatus         // 终端状态(在线/离线)
strdevname      // 计算机名
strdevip        // IP地址
strmac          // MAC地址
strdeptname     // 所属部门名
strusername     // ⭐ 使用该终端的用户账号
struserdes      // ⭐ 用户姓名/描述
strswitchname   // 接入交换机名
strifname       // 交换机接口名
strmail         // 用户邮箱
strphone        // 用户电话

关键发现strusername + struserdes 字段直接提供员工账号→终端的映射!无需通过IP交叉匹配,这是联软相比火绒的最大优势。

设备概要详细信息 getDevAllInfo

  • URL: http://{IP}:30098/devallinfoshowwithpaging?act=getDevAllInfo
  • 返回极其详细的设备信息:
equipment:
  strdevname, strip1, strmac, strnatip, macverdor, strdevtype
  strdeptname, strusername, struserdes
  dtdevuptime, dtdevdowntime, dtdevfirstfoundtime
  stros, strdomain, strserialnumber, strmainboardtype

equipmentdetail:
  devdetail:
    strverofuaagent      // 安全助手版本
    istatus              // 在线状态
    uniaccessagentstatus // UniAccess助手状态
    devassetno           // 设备资产号
    devgroup             // 设备所属设备组
  mainboardInformation[]  // 主板(厂商/型号/序列号)
  CPUInformation[]        // CPU(型号/核心/频率/缓存)
  MemoryInformation[]     // 内存(最大/当前/插槽数)
  HardDiskInformation[]   // 硬盘(类型/容量/型号/序列号)
  LogicalDiskInformation[] // 逻辑盘(卷标/文件系统/总量/可用/使用率)
  GraphicsCardInformation[] // 显卡
  NetworkCardInformation[]  // 网卡(名称/是否无线/厂商/MAC
  DisplayInformation[]      // 显示器(厂商/型号/序列号/尺寸)
  PCIInformation[]          // PCI设备
  MemoryModuleDetails[]     // 内存条详情
  SoundCardInformation[]    // 声卡
  OperatingSystemInformation[] // 操作系统详情(语言/补丁/安装时间)

比火绒的_info2更详细!尤其是逻辑磁盘使用率(可直接判断磁盘满导致卡慢)和显示器信息(多屏配置排查)。

设备安装软件信息 querysoftwarebydev

  • URL: http://{IP}:30098/software?act=querysoftwarebydev
  • 返回:
strdevname, strdevip, strmac, strdomain, strusername
softwares: [
  { strsoftware, strversion, strvendor, installdate }
]

1.3.2 🔴 P0级 — 组织架构/用户

查询用户信息 getUserInfo

  • URL: http://{IP}:30098/querydeptuser?act=getUserInfo
  • 返回:deptid, userid, useraccount, username

用户账号查询 getUserInfoByAccount

  • URL: http://{IP}:30098/querydeptuser?act=getUserInfoByAccount
  • 直接通过账号查用户,映射核心接口!

查询部门和用户信息 getAllOrgInfo

  • URL: http://{IP}:30098/querydeptuser?act=getAllOrgInfo
  • 一次性获取所有部门+用户,可做全量同步

查询部门信息 getDeptInfo

  • URL: http://{IP}:30098/querydeptuser?act=getDeptInfo
  • 返回所有部门(含父子关系)

1.3.3 🟡 P1级 — 准入控制

查询终端用户是否在线 existOnlineUser

  • URL: http://{IP}:30098/access/onlineUser?act=existOnlineUser
  • 参数:username + strdevip
  • 返回:data: 0(不在线)/ 1(在线)
  • 可精确判断某员工在某IP是否当前在线

查询用户在线列表 onlineUserList

  • URL: http://{IP}:30098/onlineUser?act=onlineUserList
  • 按时间范围查在线用户(间隔不超过3个月)

强制下线 forcedOffline

  • URL: http://{IP}:30098/nac?act=forcedOffline
  • ⚠️ 高危操作!将终端从网络强制断开
  • 与火绒的netctrl隔离功能类似但机制不同

终端入网日志 queryAccessLog

  • URL: http://{IP}:30098/access/queryInfo?act=queryAccessLog
  • 可查看终端入网历史

1.3.4 🟡 P1级 — 终端操作

通知助手弹出消息 noticeAgentMsg

  • URL: http://{IP}:30098/terminal?act=noticeAgentMsg
  • 向终端安全助手推送弹窗消息

设备远程唤醒 remoteWakeUp

  • URL: http://{IP}:30098/terminal?act=remoteWakeUp
  • 通过IP+MAC唤醒关机/休眠的终端

补丁安装审计 queryClientPatchAuditInfo

  • URL: http://{IP}:30098/terminalaudit?act=queryClientPatchAuditInfo
  • 查看终端补丁安装状态(补丁名/KB号/安装时间/是否成功)

查询助手安装率 queryAgentInstallRate

  • URL: http://{IP}:30098/terminal?act=queryAgentInstallRate
  • 返回Windows/macOS分别的安装率

查询终端补丁安装率 queryAllMspatchInstallRate

  • URL: http://{IP}:30098/terminal?act=queryAllMspatchInstallRate
  • 返回全公司补丁安装率

1.3.5 🟢 P2级 — 审计与安全

通用审计信息查询 queryCommonAuditInfo

  • URL: http://{IP}:30098/auditinfo?act=queryCommonAuditInfo
  • 支持所有通用审计类型(文件操作/进程控制等)

仿冒设备查询 queryCounterfeitList

  • URL: http://{IP}:30098/access/queryInfo?act=queryCounterfeitList
  • 查询准入仿冒信息(发现仿冒设备告警)

屏幕录像审计 listScreenAuditInfo

  • URL: http://{IP}:30098/auditinfo?act=listScreenAuditInfo
  • 获取终端屏幕录像审计信息

Syslog推送

  • 联软支持将审计日志通过Syslog推送到第三方平台(UDP 514)
  • 吞吐量:约100条/秒
  • 支持:文件读写审计、非授权外联审计、打印审计、漏洞审计、进程检测审计、安全U盘审计

二、与火绒的能力对比

2.1 功能矩阵对比

能力维度 火绒 联软 对IT服务台价值
员工↔终端映射 只有computer_name strusername+struserdes 🔴 最关键差异
终端基本信息 _listclient_id/name/ip/mac/在线) queryDevByParams(更丰富) 相当
终端详细信息 _info2(硬件+软件+资产+网络) getDevAllInfo更详细:含磁盘使用率/显示器/内存条详情) 联软胜
病毒事件 _virus_events(病毒统计+处理状态) 无专门接口 火绒独有
高危漏洞 _leak(漏洞等级+详情) queryClientPatchAuditInfo(补丁审计) 火绒更直观
终端隔离 netctrl(网络隔离/解除) forcedOffline(强制下线) 火绒更精细(可隔离+解除)
远程扫描 _create(快速/全盘/自定义扫描) 火绒独有
远程唤醒 remoteWakeUp 联软独有
消息推送 _create(message) noticeAgentMsg 相当
准入控制 existOnlineUser+forcedOffline+queryAccessLog 联软独有
软件管理 _search(软件安装率/版本分布) querysoftwarebydev(按设备查软件) 联软更实用
组织架构 SCIM同步+部门/用户查询 联软独有
审计日志 Syslog推送+通用审计查询 联软独有
仿冒设备 queryCounterfeitList 联软独有
审批流程 完整审批流程API 低价值
屏幕录像 审计信息+图片导出 低价值

2.2 核心结论

火绒 = 安全防护(杀毒+漏洞+隔离+扫描) 联软 = 终端管理(准入+硬件+软件+映射+审计)

两者高度互补,不存在替代关系,应双系统集成!


三、产品维度分析

3.1 联软独有高价值场景

场景 联软API 用户体验
员工报修「电脑卡/慢」 getDevAllInfo 坐席直接看到磁盘使用率34%→11%、内存16GB/32GB、CPU负载,一秒定位瓶颈
员工报修「网络连不上」 existOnlineUser + queryAccessLog 坐席查看该员工终端当前是否准入在线、最近入网记录、是否被策略阻断
员工报修「电脑开不了机」 remoteWakeUp 坐席远程唤醒终端(WOL),员工无需等待IT到现场
员工问「我装了什么软件」 querysoftwarebydev 输入员工账号→自动列出已安装软件+版本+安装日期
IT查「谁用了这个IP」 queryDevByParams 按IP反查使用人、部门、MAC,网络冲突排查利器
安全巡检「补丁安装率」 queryAllMspatchInstallRate + queryClientPatchAuditInfo 管理后台展示补丁合规率

3.2 联软+火绒联合场景

场景 联软提供 火绒提供 联合效果
坐席打开会话 员工→终端映射(strusername 终端安全画像(漏洞+病毒) 一键获知「谁的电脑+什么安全状态」
安全事件响应 forcedOffline快速断网 netctrl精细隔离 双重保障:先联软断网→火绒隔离
磁盘满排查 getDevAllInfo磁盘使用率 _info2软件列表 联软看磁盘空间→火绒查大文件软件
补丁管理 queryClientPatchAuditInfo安装审计 _leak高危漏洞列表 联软看补丁安装结果→火绒看漏洞风险
终端画像 硬件详情+准入状态+资产号 安全评分+病毒事件 360°终端全景

3.3 集成功能规划(按优先级)

P0 — 核心查询+映射(阶段三 3A-3B)

功能 用户侧效果 涉及API
员工→终端映射服务 输入员工账号→返回终端列表(IP/MAC/计算机名/部门/在线状态) queryDevByParams + getUserInfoByAccount
终端详细信息卡片 坐席打开会话→自动展示该员工终端的完整硬件+软件信息 getDevAllInfo + querysoftwarebydev
终端在线状态查询 AI Wingman自动检测→提示终端是否在线 existOnlineUser

P1 — 操作+控制(阶段三 3C + 阶段四)

功能 用户侧效果 涉及API
远程唤醒终端 坐席一键唤醒休眠/关机的终端 remoteWakeUp
推送助手消息 向员工终端弹窗通知(如「请重启电脑安装补丁」) noticeAgentMsg
强制下线 安全事件→坐席一键断网(与火绒隔离互为补充) forcedOffline
补丁审计查询 查看某终端补丁安装状态 queryClientPatchAuditInfo
入网日志查询 排查网络问题时查看终端入网历史 queryAccessLog

P2 — 管理与运营(阶段四 4B

功能 用户侧效果 涉及API
助手安装率看板 管理后台展示公司安全助手安装率 queryAgentInstallRate
补丁合规率看板 管理后台展示补丁安装率 queryAllMspatchInstallRate
仿冒设备告警 发现仿冒设备自动推送告警 queryCounterfeitList
Syslog审计日志 联软审计事件实时推送到IT服务台 Syslog接口

四、开发维度分析

4.1 后端模块设计

backend/app/
├── integrations/
│   ├── __init__.py
│   ├── base.py                     # 集成基类
│   ├── huorong/                    # 火绒集成(已有设计)
│   │   ├── client.py
│   │   ├── config.py
│   │   ├── models.py
│   │   ├── cache.py
│   │   └── exceptions.py
│   ├── leagsoft/                   # 联软集成模块
│   │   ├── __init__.py
│   │   ├── client.py               # 联软API客户端(认证+请求)
│   │   ├── config.py               # 配置(BaseUrl/账号密码/Token
│   │   ├── models.py               # 数据模型(Pydantic
│   │   ├── cache.py                # 缓存策略
│   │   └── exceptions.py           # 自定义异常
│   └── mapping/                    # 🆕 统一映射服务
│       ├── __init__.py
│       ├── service.py              # 员工→终端映射核心逻辑
│       └── models.py               # 映射数据模型
├── api/
│   └── integrations.py             # 集成API路由
└── services/
    └── integration_service.py      # 集成业务逻辑

4.2 认证实现

联软推荐使用一次性Token模式(安全性最高):

import httpx
from datetime import datetime, timedelta

class LeagsoftClient:
    """联软API客户端"""
    
    def __init__(self, base_url: str, api_account: str, api_password: str):
        self.base_url = base_url       # 如 http://leagsoft.oa.servyou-it.com:30098
        self.api_account = api_account
        self.api_password = api_password
        self._token: str | None = None
        self._token_expire: datetime | None = None
    
    async def _ensure_token(self) -> str:
        """
        确保token有效,过期则重新获取
        - 联软token默认30分钟有效
        - 提前5分钟刷新,避免临界过期
        """
        if self._token and self._token_expire and datetime.now() < self._token_expire - timedelta(minutes=5):
            return self._token
        
        async with httpx.AsyncClient(timeout=10) as client:
            resp = await client.get(f"{self.base_url}/token", params={"act": "getToken"})
            data = resp.json()
            # 解析token(具体字段需根据实际返回确认)
            self._token = data.get("token", "")
            self._token_expire = datetime.now() + timedelta(minutes=25)  # 保守25分钟
        
        return self._token
    
    async def query_dev_by_params(self, username: str = None, devip: str = None, 
                                   mac: str = None, devname: str = None) -> list[dict]:
        """
        查询终端设备
        - username: 员工账号(映射核心参数)
        - devip: 终端IP
        - mac: MAC地址
        - devname: 计算机名
        - 支持多条件组合查询
        """
        token = await self._ensure_token()
        params = {"act": "queryDevByParams", "token": token}
        form_data = {}
        if username:
            form_data["strusername"] = username
        if devip:
            form_data["strdevip"] = devip
        if mac:
            form_data["strmac"] = mac
        if devname:
            form_data["strdevname"] = devname
        
        async with httpx.AsyncClient(timeout=10) as client:
            resp = await client.post(
                f"{self.base_url}/terminal",
                params=params,
                data=form_data
            )
            result = resp.json()
        
        if result.get("status") != "SUCCESS":
            raise LeagsoftAPIError(result.get("msg", "未知错误"))
        
        return result.get("rows", [])

4.3 缓存策略

数据类型 缓存时间 理由
终端基本信息 (queryDevByParams) 5分钟 终端上下线变化较频繁
终端详细信息 (getDevAllInfo) 30分钟 硬件信息极少变化
软件安装信息 (querysoftwarebydev) 1小时 软件安装变化慢
在线状态 (existOnlineUser) 1分钟 需较实时
组织架构 (getAllOrgInfo) 24小时 组织变更极少
用户信息 (getUserInfoByAccount) 24小时 用户信息变更少
补丁审计 (queryClientPatchAuditInfo) 1小时 补丁安装周期为天级

4.4 员工→终端映射方案(重大升级)

原方案回顾

之前火绒集成分析中,因火绒API只有computer_name无员工账号,提出了三种映射方案:

方案 原理 缺点
A. computer_name匹配 依赖命名规范 不稳定
B. eHR+火绒IP交叉匹配 eHR取IP→火绒查终端 需eHR接口,IP可能变化
C. 手动绑定 坐席手动关联 运营成本高

新方案:联软直接映射(方案D推荐

核心发现:联软 queryDevByParams 接口直接返回 strusername(员工账号)和 struserdes(员工姓名),且总部员工必须安装联软安全助手,因此联软拥有最准确的员工↔终端映射数据

联软 queryDevByParams(strusername="songxian")
    ↓ 返回
[
  {strdevname: "DESKTOP-SX001", strdevip: "10.8.11.21", strmac: "0C:C4:7A:0C:75:B5",
   strusername: "songxian", struserdes: "宋献", strdeptname: "IT部", istatus: "在线"},
  {strdevname: "DESKTOP-SX002", strdevip: "10.8.11.22", strmac: "0C:C4:7A:0C:75:B6",
   strusername: "songxian", struserdes: "宋献", strdeptname: "IT部", istatus: "离线"}
]

映射架构(多源融合)

                    ┌──────────────────────────────────────────┐
                    │         IT服务台 统一映射服务              │
                    │    (mapping/service.py)                  │
                    └───────┬──────────┬──────────┬────────────┘
                            │          │          │
                   ┌────────▼──┐  ┌────▼─────┐  ┌─▼──────────┐
                   │  联软      │  │  aTrust   │  │  eHR       │
                   │  (主源)    │  │  (VPN源)  │  │  (辅助源)  │
                   └───────────┘  └──────────┘  └────────────┘
                        │              │              │
                        ▼              ▼              ▼
                   总部终端映射    远程办公映射     人员基础信息
                   (最准确)      (VPN连接时准确)   (无终端信息)

映射优先级策略

场景 数据源 匹配键 准确度 说明
总部办公终端 联软 strusername = 员工账号 最准确,安全助手必装
外网VPN终端 aTrust VPN登录账号 = 员工账号 远程办公时最准确
eHR补充 eHR 员工工号 = 员工账号 无终端映射,仅人员信息
火绒安全数据 火绒 通过联软映射获得client_id→查安全 依赖联软映射做桥梁

映射实现

class TerminalMappingService:
    """
    统一员工→终端映射服务
    优先级: 联软(主) > aTrust(VPN) > 手动绑定
    """
    
    async def get_employee_terminals(self, employee_id: str) -> list[TerminalInfo]:
        """
        根据员工ID获取关联的终端列表
        
        策略:
        1. 先查联软(最准确,覆盖总部终端)
        2. 联软无结果 → 查aTrust(覆盖VPN终端)
        3. 都无结果 → 返回空,标记为「未发现终端」
        """
        # Step 1: 联软查询
        leagsoft_terminals = await self.leagsoft_client.query_dev_by_params(
            username=employee_id
        )
        if leagsoft_terminals:
            return [self._parse_leagsoft_terminal(t) for t in leagsoft_terminals]
        
        # Step 2: aTrust查询(后续实现)
        # atrust_terminals = await self.atrust_client.query_user_devices(employee_id)
        # if atrust_terminals:
        #     return atrust_terminals
        
        # Step 3: 无结果
        return []
    
    async def get_terminal_security(self, employee_id: str) -> TerminalSecurityInfo:
        """
        获取员工终端的安全信息(跨系统聚合)
        
        流程:
        1. 联软获取终端列表 → 得到strdevip/strmac
        2. 用strdevip去火绒查安全状态
        3. 聚合联软硬件+火绒安全 → 完整画像
        """
        # Step 1: 联软获取终端
        terminals = await self.get_employee_terminals(employee_id)
        if not terminals:
            return TerminalSecurityInfo(available=False, reason="未发现关联终端")
        
        terminal = terminals[0]  # 取主终端
        
        # Step 2: 火绒查安全(用IP或computer_name匹配)
        huorong_info = await self.huorong_client.query_by_ip(terminal.ip)
        
        # Step 3: 聚合
        return TerminalSecurityInfo(
            terminal=terminal,           # 联软硬件信息
            security=huorong_info,       # 火绒安全信息
            available=True
        )

4.5 前端集成设计

坐席端新增

坐席工作台
└── 右侧面板
    └── 「终端信息」标签页(替代原「终端安全」,合并联软+火绒)
        ├── 终端概要卡片(联软数据)
        │   ├── 在线状态 🟢/🔴 + IP地址
        │   ├── 计算机名 + 员工账号
        │   ├── 操作系统版本
        │   ├── 硬件概要(CPU/内存/磁盘使用率)
        │   ├── 设备资产号
        │   └── 安全助手版本
        ├── 安全状态卡片(火绒数据)
        │   ├── 安全评分
        │   ├── 🔴 高危漏洞 (N个)
        │   ├── 🟡 未处理病毒事件 (N个)
        │   └── 🟢 安全状态正常
        ├── 软件列表(联软数据)
        │   └── 已安装软件 + 版本 + 安装日期
        └── 快速操作
            ├── 📡 远程唤醒 (联软)
            ├── 📢 推送消息 (联软/火绒)
            ├── 🛡️ 快速扫描 (火绒)
            ├── 🔒 强制下线 (联软) / 隔离终端 (火绒)
            └── 🔓 解除隔离 (火绒)

4.6 开发风险与应对

风险 影响 概率 应对措施
联软API账户/密码未申请 无法调用任何接口 提前联系信息安全/终端安全团队
内网地址不通 开发环境无法调试 需VPN或开发机部署在内网
Token过期处理 长时间运行后API调用失败 实现自动刷新token,提前5分钟续期
IP白名单未配置 返回INVALID 确认部署服务器IP加入白名单
API字段名不一致 部分接口返回字段与文档不符 先用Postman验证,编写适配层
联软版本差异 API端点可能不存在 确认当前版本是否为202210SP
查询数据量过大 部分接口有数据量限制(仿冒设备默认1万条) 分页查询+限制时间范围

五、安全维度分析

5.1 认证安全

风险项 等级 说明 建议
API账户密码泄露 严重 泄露后可调用所有联软API,包括强制下线 密码存环境变量,禁止写入代码
Token泄露 Token有效期内可被冒用 使用HTTPS(如有);Token存储在内存不落盘
IP白名单过宽 白名单IP范围过大增加攻击面 仅添加必要的服务器IP

认证方式建议

场景 推荐认证方式 理由
内网服务器间调用 IP白名单 + 一次性Token 安全性最高
开发调试 IP白名单 + 用户名密码 方便调试
生产环境 三种全部启用 纵深防御

5.2 操作安全

操作 风险等级 安全要求
查询终端设备 (queryDevByParams) 🟢 无特殊要求
查询终端详情 (getDevAllInfo) 🟢 无特殊要求
查询在线状态 (existOnlineUser) 🟢 无特殊要求
推送助手消息 (noticeAgentMsg) 🟡 记录审计日志;限制频率(同终端5分钟1条)
远程唤醒 (remoteWakeUp) 🟡 记录审计日志;仅坐席可操作
强制下线 (forcedOffline) 🔴 必须二次确认 + 审计日志 + 仅admin角色
Syslog推送 🟢 只读,无风险

强制下线 vs 火绒隔离的区别

维度 联软强制下线 火绒网络隔离
机制 准入控制断网(802.1X 终端agent执行隔离
彻底性 非常彻底(交换机层面断网) 较彻底(终端层面断网)
恢复 需重新认证入网 调用API即可解除
影响范围 该终端所有网络 可配置例外(如仅隔离外网)
推荐场景 确认中毒/仿冒,紧急切断 可疑行为,需隔离观察

5.3 数据安全

风险项 说明 建议
员工账号信息 联软返回员工账号/姓名/邮箱/电话 H5用户端不展示;坐席端仅展示必要信息
终端敏感信息 MAC/IP/序列号等 同火绒策略:坐席端可见,用户端不可见
硬件详情 包含主板序列号等资产信息 后端过滤后再传前端,不暴露内部序列号
组织架构 全量部门+用户数据 仅同步必要字段,不存储完整组织架构

六、aTrust集成方案

aTrust OpenAPI V3文档已获取并完成分析(2026-06-11),详见 docs/aTrust零信任系统集成分析.md

6.1 系统信息

项目 说明
产品 深信服aTrust零信任访问控制系统
API版本 OpenAPI V3(适用于≥2.4.10版本)
端点数 104个10大类)
认证方式 HMAC-SHA256签名(4个必填Header: x-ca-sign/key/timestamp/nonce
默认端口 4433HTTPS
IP白名单 支持

6.2 核心P0接口

接口 路径 方法 核心价值
查询在线用户 /api/v1/monitor/getUserStatus GET VPN在线状态+remoteIp+vips(虚拟IP)+os+browser
查询全量终端 /api/v1/device/queryAll POST 按绑定用户查询终端(bindUserList过滤)
查询单个终端 /api/v1/device/query GET 终端详情+bindUsers(绑定用户列表)+macList

6.3 核心P1接口

接口 路径 方法 安全等级
踢出在线用户 /api/v1/monitor/kickoutUsers POST 🔴 高危(需二次确认+审计)
终端绑定用户 /api/v1/device/assignUser POST 🟡
查询用户详情 /api/v3/user/queryByName GET 🟢

6.4 aTrust映射字段

映射路径 字段 说明
在线用户→员工 name(用户名) 如果与公司域账号一致,直接映射employee_id
在线用户→虚拟IP vips[].ip VPN分配的内网IP,可用于火绒交叉匹配
终端→绑定用户 bindUsers[].bindUser 终端绑定的用户名
用户→外部ID externalId 可设置为工号,实现直接映射
终端→MAC macList MAC地址列表,与联软交叉匹配

6.5 与联软的互补关系

能力 联软(内网主源) aTrustVPN源) 互补效果
内网终端映射 strusername 部分覆盖 联软主导
远程/VPN终端 ⚠️ 可能未覆盖 核心覆盖 aTrust补全
VPN会话数据 唯一数据源 不可替代
踢出能力 forcedOffline(准入下线) kickoutUsers(VPN踢出) 双通道
终端授信 trusted字段 aTrust独有

6.6 集成优先级

aTrust集成为P1优先级(联软P0之后),因为:

  1. VPN连接问题是IT服务台高频场景
  2. aTrust的vips虚拟IP可用于火绒交叉匹配,补全远程终端安全画像
  3. aTrust API文档已获取,可直接开发
  4. 104个端点中仅需3-5个P0接口,开发量可控

七、三系统集成总览

7.1 系统定位

┌──────────────────────────────────────────────────────────────┐
│                    IT智能服务台                               │
│                  (统一集成层)                               │
│                                                              │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐             │
│  │   联软      │  │   火绒      │  │   aTrust   │             │
│  │  终端管理   │  │  终端安全   │  │  远程接入   │             │
│  └─────┬──────┘  └─────┬──────┘  └─────┬──────┘             │
│        │               │               │                    │
│  员工↔终端映射    安全态势+隔离    VPN状态+远程IP           │
│  硬件+软件详情    病毒+漏洞+扫描   VPN连接审计              │
│  准入+远程唤醒    网络隔离/解除    认证状态                  │
│  补丁+审计日志    软件合规统计    虚拟IP分配                 │
└──────────────────────────────────────────────────────────────┘

7.2 集成优先级与排程

阶段 系统 功能 预计周期 前置条件
P0 联软 员工→终端映射 + 终端详情查询 ~2周 联软API账户+白名单
P0 火绒 终端安全画像 + 漏洞/病毒查询 ~2周 火绒AccessKey
P1 联软 远程唤醒 + 消息推送 + 准入查询 ~1周 P0已完成
P1 火绒 远程扫描 + 隔离/解除 ~1周 P0已完成
P1 aTrust VPN状态 + 远程终端映射 ~2周 aTrust API文档
P2 联软+火绒 管理后台安全态势看板 ~1周 P0+P1已完成
P2 联软 Syslog审计日志对接 ~1周 联软Syslog配置

7.3 统一数据模型

class UnifiedTerminalInfo:
    """统一终端信息模型(聚合联软+火绒+aTrust"""
    
    # 基础标识(联软提供)
    computer_name: str          # 计算机名
    ip: str                    # IP地址
    mac: str                   # MAC地址
    employee_id: str           # 使用人账号
    employee_name: str         # 使用人姓名
    department: str            # 所属部门
    
    # 在线状态(联软+aTrust
    is_online: bool            # 是否在线
    online_source: str         # "leagsoft" | "atrust" | "offline"
    last_online_time: str      # 最后在线时间
    
    # 硬件信息(联软 getDevAllInfo
    os_version: str            # 操作系统版本
    cpu: str                   # CPU型号
    memory_gb: int             # 内存(GB)
    disk_total_gb: float       # 磁盘总量(GB)
    disk_usage_pct: float      # 磁盘使用率(%)
    
    # 安全信息(火绒提供)
    security_score: int | None       # 安全评分
    high_risk_leaks: int | None       # 高危漏洞数
    uncleaned_virus: int | None       # 未处理病毒数
    last_scan_time: str | None        # 最近扫描时间
    
    # 准入信息(联软提供)
    agent_version: str | None        # 安全助手版本
    patch_install_rate: float | None  # 补丁安装率
    
    # VPN信息(aTrust提供)
    vpn_online: bool | None           # VPN是否在线
    vpn_virtual_ip: str | None        # VPN虚拟IP
    vpn_last_connect: str | None     # 最近VPN连接时间

八、对接前准备清单

联软

必须完成(阻塞性)

  • 申请API账户:联系终端安全团队,获取ApiAccount + ApiPassword
  • 配置IP白名单:将IT服务台服务器IP加入联软白名单
  • 确认网络可达:确认开发/部署服务器可访问联软系统(端口30098)
  • 确认联软版本:确认当前版本是否为202210SP,API文档是否匹配

建议完成(非阻塞)

  • 确认员工账号映射:验证联软中strusername字段是否为公司企微/域账号
  • 确认数据量级:了解联软管理的终端数量,评估查询性能
  • 确认安全助手安装率:了解公司终端安全助手安装覆盖率
  • 准备测试终端:准备1-2台测试终端用于开发调试

aTrust

  • 获取API文档:联系网络/信息安全团队获取aTrust API文档
  • 确认认证方式:了解aTrust API认证机制
  • 确认映射数据格式:了解aTrust中员工↔终端的映射字段

九、总结

9.1 核心结论

  1. 联软是终端映射的金钥匙strusername字段直接打通员工→终端的映射,这是火绒和eHR都无法提供的关键能力
  2. 联软+火绒高度互补:联软管「终端画像+准入」,火绒管「安全态势+隔离」,无替代关系
  3. aTrust补全远程办公:联软覆盖内网终端,aTrust覆盖VPN终端,两者结合实现100%覆盖
  4. 三系统联合映射是最佳方案:联软(主)+aTrust(VPN)+eHR(辅助),取代之前推荐的IP交叉匹配方案
  5. 实现成本低:联软API为标准HTTP+JSON,认证简单,无需安装agent

9.2 映射策略升级总结

维度 旧方案(仅火绒) 新方案(三系统)
映射准确度 IP交叉匹配) (联软直接映射)
覆盖范围 仅内网在线终端 内网+VPN全覆盖
实现复杂度 需eHR+火绒双接口 仅联软单接口
维护成本 高(IP变化需定期校验) 低(联软实时更新)
前置依赖 eHR接口+火绒接口 联软接口

9.3 一句话总结

联软是IT智能服务台打通「员工↔终端」映射的关键系统,与火绒形成「管理+安全」双引擎,加上aTrust补全远程办公,三系统集成将实现终端问题排查的360°全景视角。