Files
wecom_it_smart_desk/docs/资源申请清单.md
T

316 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IT智能服务台 — 资源申请清单
> **📌 使用说明(工作流程)**
>
> 本文档是 IT智能服务台 所有资源申请需求的**统一汇总入口**,适用于:
> - 服务器/域名/网络等资源申请
> - 外部系统 API 对接申请(联软、火绒、aTrust、北森 eHR 等)
> - 任何需要向其他团队(运维/安全/网络)申请权限或资源的任务
>
> **工作流程**
> 1. 新需求直接添加到本文档对应章节(无对应章节则新建)
> 2. **不单独发送企微消息、邮件或工单** — 所有需求集中在此文档跟踪
> 3. 申请完成后在文档中更新状态(✅/🔄/❌)
>
> **负责人**:宋献(IT支持组,负责终端安全,火绒/联软超管)
---
## 一、背景
IT智能服务台(IT Smart Desk)包含两个部署环境,需向运维申请服务器、域名及反向代理资源:
| 环境 | 用途 | 部署位置 | 访问方式 |
|------|------|---------|---------|
| **预生产** | 内网功能验证 | G端服务器 `10.80.0.129` | 公司内网域名 |
| **生产(NAS** | 企微端实际使用 | 群晖 NAS `192.168.3.200` | Cloudflare Tunnel 公网域名 |
---
## 二、服务器资源
### 2.1 预生产环境 — G端服务器
| 项目 | 信息 |
|------|------|
| **服务器 IP** | `10.80.0.129` |
| **用途** | 预生产验证(内网测试) |
| **服务端口** | `18080`Docker Nginx 容器暴露端口) |
| **部署方式** | Docker Compose 4容器(postgres + redis + backend + nginx |
| **部署路径** | `/home/admin/itdesk/` |
| **现有域名** | `it-dataquery.dc.servyou-it.com`(与数据查询平台共用) |
| **状态** | ✅ 已部署运行 |
### 2.2 生产环境 — 群晖 NAS
| 项目 | 信息 |
|------|------|
| **NAS 内网 IP** | `192.168.3.200` |
| **用途** | 生产环境(企微端实际使用) |
| **部署方式** | Docker Compose 5容器(cloudflared + nginx + backend + postgres + redis |
| **部署路径** | `/volume1/docker/wecom-it-desk` |
| **外网访问** | Cloudflare Tunnel(无需公网 IP、无需端口映射) |
| **状态** | 🔄 部署包已准备,待上线 |
---
## 三、域名资源
| 域名 | 环境 | 用途 | 类型 | 状态 |
|------|------|------|------|------|
| `it-dataquery.dc.servyou-it.com` | 预生产 | G端服务器反代入口(共用现有域名) | 公司内网域名 | ✅ 已有 |
| `itdesk.amanzac.com` | 生产(阶段一测试) | NAS Cloudflare Tunnel 入口 | Cloudflare 托管域名 | ✅ 已配置 |
| `itsupport.servyou.com.cn` | 生产(正式) | 公司备案域名,后续正式环境使用 | 公司备案域名 | 🔄 待申请/配置 |
> **说明**
> - 预生产环境复用数据查询平台现有域名,新增 `/itdesk/`、`/itagent/`、`/api/`、`/ws/` 路径即可
> - 阶段一测试使用 Cloudflare Tunnel + `itdesk.amanzac.com`,已配置可用
> - 正式上线后将切换至 `itsupport.servyou.com.cn`(公司备案域名),需走域名申请流程
---
## 四、反向代理路由规则
### 4.1 预生产 — G端 Nginx 反代
在现有 `it-dataquery.dc.servyou-it.com` 的 Nginx 配置中,**新增以下 4 条 `location` 规则**,代理到 `10.80.0.129:18080`
| 路径前缀 | 用途 | 目标 |
|----------|------|------|
| `/itdesk/` | H5 员工端(企微内置浏览器访问) | `http://10.80.0.129:18080/itdesk/` |
| `/itagent/` | 坐席工作台(PC 浏览器访问) | `http://10.80.0.129:18080/itagent/` |
| `/api/` | 后端 API 接口 | `http://10.80.0.129:18080/api/` |
| `/ws/` | WebSocket 长连接(预留) | `http://10.80.0.129:18080/ws/` |
> **⚠️ 重要**:`/` 根路径保持不变,继续代理到现有数据查询平台。
#### 建议 Nginx 配置片段
```nginx
# ==================== IT智能服务台 — 预生产 ====================
# 后端 API
location /api/ {
proxy_pass http://10.80.0.129:18080/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 企微回调超时设置
proxy_read_timeout 60s;
proxy_connect_timeout 10s;
}
# WebSocket(坐席端实时通知)
location /ws/ {
proxy_pass http://10.80.0.129:18080/ws/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 3600s;
}
# H5 员工端
location /itdesk/ {
proxy_pass http://10.80.0.129:18080/itdesk/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 坐席工作台
location /itagent/ {
proxy_pass http://10.80.0.129:18080/itagent/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
```
### 4.2 生产 — NAS NginxDocker 内部)
NAS 环境的 Nginx 已内置于 Docker Compose,**无需运维额外配置**。路由规则如下:
| 路径前缀 | 用途 | 目标 |
|----------|------|------|
| `/itdesk/` | H5 员工端 | 容器内静态文件 `/usr/share/nginx/html/itdesk/` |
| `/itagent/` | 坐席工作台 | 容器内静态文件 `/usr/share/nginx/html/itagent/` |
| `/api/` | 后端 API | `http://backend:8000/` |
| `/ws/` | WebSocket | `http://backend:8000`upgrade |
> 详细配置见 `nginx/nginx-nas.conf`
---
## 五、网络连通性要求
### 5.1 预生产环境
| 源(发起方) | 目标 | 端口 | 协议 | 用途 |
|-------------|------|------|------|------|
| 数据平台 Nginx 主机 | `10.80.0.129` | `18080` | TCP/HTTP | 反向代理流量 |
| `10.80.0.129` | 企微 API `qyapi.weixin.qq.com` | `443` | TCP/HTTPS | 企微 Token/AccessToken/消息推送 |
| `10.80.0.129` | Dify AI 服务 `yw-dify.dc.servyou-it.com` | `443`(或内网端口) | TCP/HTTPS | AI 对话调用 |
#### 防火墙规则
```
# 入站规则(数据平台主机 → 10.80.0.129
源: 数据平台主机IP → 目标: 10.80.0.129:18080 TCP 允许
# 出站规则(10.80.0.129 → 外部)
目标: qyapi.weixin.qq.com:443 TCP 允许 # 企微 API
目标: yw-dify.dc.servyou-it.com:443 TCP 允许 # Dify AI
```
### 5.2 生产环境(NAS
| 源(发起方) | 目标 | 端口 | 协议 | 用途 |
|-------------|------|------|------|------|
| NAS `192.168.3.200` | Cloudflare Edge | `443` | TCP/HTTPS(出站) | Tunnel 连接 |
| NAS `192.168.3.200` | 企微 API `qyapi.weixin.qq.com` | `443` | TCP/HTTPS(出站) | 企微回调/消息推送 |
| NAS `192.168.3.200` | Dify AI 服务 | `443` | TCP/HTTPS(出站) | AI 对话调用(预留) |
| 办公网络 | NAS `192.168.3.200` | `18080` | TCP/HTTP | 内网调试访问(可选) |
> **说明**Cloudflare Tunnel 为**出站连接**,NAS 无需开放任何入站端口,安全性最优。
---
## 六、SSL / HTTPS
| 环境 | 方案 | 状态 |
|------|------|------|
| 预生产 | 复用 `it-dataquery.dc.servyou-it.com` 现有证书 | ✅ 无需额外申请 |
| 生产 | Cloudflare Tunnel 自动 HTTPS 终止 | ✅ 无需申请证书 |
---
## 七、验证方式
### 7.1 预生产环境
| 验证地址 | 预期结果 |
|----------|----------|
| `https://it-dataquery.dc.servyou-it.com/itdesk/` | 显示 H5 员工端页面 |
| `https://it-dataquery.dc.servyou-it.com/itagent/` | 显示坐席工作台页面 |
| `https://it-dataquery.dc.servyou-it.com/api/test-ping` | 返回 `{"code":0,"data":"pong"}` |
| `https://it-dataquery.dc.servyou-it.com/` | 保持原样,跳转到数据查询平台 |
### 7.2 生产环境
| 验证地址 | 预期结果 |
|----------|----------|
| `https://itdesk.amanzac.com/itdesk/` | 显示 H5 员工端页面 |
| `https://itdesk.amanzac.com/itagent/` | 显示坐席工作台页面 |
| `https://itdesk.amanzac.com/api/health` | 返回 `{"status":"healthy"}` |
| `http://192.168.3.200:18080/itdesk/` | 内网直连访问(调试用) |
---
## 九、外部系统 API 对接
### 9.1 联软 LV7000 — 终端管理系统
> 申请日期:2026-06-11 | 负责人:宋献(联软超管) | 优先级:P0(核心映射数据源)
#### 项目背景
IT智能服务台核心目标之一是**打通员工↔终端的映射链路**。联软LV7000拥有最准确的员工账号→终端设备映射数据(`strusername`字段),是终端信息集成的**核心数据源**。
#### API 账户(超管自建)
| 项目 | 说明 |
|------|------|
| **所需权限** | 终端设备查询(P0)、用户信息查询(P0)、准入状态查询(P1)、终端操作(P1) |
| **认证模式** | 全启:IP白名单 + 账号密码 + 一次性Token(纵深防御) |
| **所需信息** | 联软超管后台创建 `ApiAccount` + `ApiPassword`,确认内网访问地址(BaseURL) |
| **操作人** | 宋献(联软LV7000超管权限) |
#### 需要开通的 API 端点
**P0 — 核心查询(必须)**
| # | API 端点 | 用途 | 调用频率预估 |
|---|---------|------|------------|
| 1 | `/terminal?act=queryDevByParams` | 按员工账号/IP/MAC查询终端 | 每次会话 ~1次 |
| 2 | `/devallinfoshowwithpaging?act=getDevAllInfo` | 终端详细硬件+软件信息 | 每次会话 ~1次 |
| 3 | `/querydeptuser?act=getUserInfoByAccount` | 按账号查用户信息 | 缓存刷新,低频 |
| 4 | `/querydeptuser?act=getAllOrgInfo` | 组织架构全量同步 | 每日1次 |
**P1 — 操作与状态(建议)**
| # | API 端点 | 用途 | 调用频率预估 |
|---|---------|------|------------|
| 5 | `/access/onlineUser?act=existOnlineUser` | 查询终端在线状态 | 每次会话 ~1次 |
| 6 | `/terminal?act=noticeAgentMsg` | 向终端推送弹窗消息 | 按需,低频 |
| 7 | `/terminal?act=remoteWakeUp` | 远程唤醒终端 | 按需,极低频 |
| 8 | `/software?act=querysoftwarebydev` | 查询终端安装软件 | 缓存刷新,低频 |
| 9 | `/terminalaudit?act=queryClientPatchAuditInfo` | 补丁安装审计 | 缓存刷新,低频 |
> P1中的 `forcedOffline`(强制下线)为高危操作,初期**不申请**,待安全评审后再开通。
#### IP 白名单配置
需将以下服务器IP加入联软白名单:
| 环境 | 服务器 IP | 用途 |
|------|---------|------|
| 预生产 | `10.80.0.129` | 开发调试 + 功能测试 |
| 正式环境 | (待确认) | 生产部署 |
> 正式环境服务器IP待部署时确认后补报。
#### 网络可达性
需确认从以下节点可访问联软系统端口 **30098**
- `10.80.0.129`(预生产服务器)
- 开发机(公司内网)
#### 需确认信息
| # | 确认事项 | 用途 |
|---|---------|------|
| 1 | 联软LV7000当前版本号 | 确认API文档是否匹配(参考版本:202210SP v1.1 |
| 2 | `strusername` 字段是否为公司的域账号/企微账号 | 确认员工→终端映射的匹配键 |
| 3 | 联软管理的终端数量 | 评估查询性能和缓存策略 |
| 4 | 公司终端安全助手安装率 | 评估映射覆盖率 |
| 5 | 联软系统内网访问地址 | API调用BaseURL |
| 6 | Token有效时长 | 确认缓存刷新策略(文档默认30分钟) |
| 7 | 是否有调用频率限制 | 防止触发限流 |
#### 安全承诺
1. API账户密码仅存储在环境变量中,**绝不**写入代码或版本库
2. Token仅存储在应用内存中,不落盘
3. 高危操作(强制下线等)需二次确认 + 审计日志,仅admin角色可执行
4. 员工敏感信息(邮箱/电话)前端不展示,后端按需过滤
5. 所有API调用记录审计日志,可追溯
#### 对接时间线
| 阶段 | 内容 | 预计时间 |
|------|------|---------|
| 自建 | 超管后台创建API账户 + 配置权限 | 本周 |
| 配置 | IP白名单 + 网络验证 | 账户创建后1天 |
| 验证 | Postman接口测试 | 配置完成后1天 |
| 开发 | 后端集成模块开发 | ~2周 |
| 联调 | 前后端联调 + 测试 | ~1周 |
---
## 十、联系信息
- **申请人**:宋献,IT支持组(税友集团),负责终端安全
- **火绒/联软对接人**:宋献(超管权限,自行创建API账户,受安全团队管理)
- **项目**IT智能服务台(IT Smart Desk
- **紧急程度**:预生产反代配置建议 1-2 个工作日内完成;生产环境 NAS 自建,无需运维介入
- **组织架构说明**
- IT支持组 = 终端安全负责团队(非独立"终端安全团队")
- 火绒企业版、联软LV7000 均以IT支持组名义申请/配置
- 跨团队资源申请(服务器/域名等)通过本文档统一跟踪