160 lines
6.1 KiB
Markdown
160 lines
6.1 KiB
Markdown
|
|
# 任务说明书 - 零信任VPN账号申请卡片免登录修复
|
|||
|
|
|
|||
|
|
> **版本**: v2.0 | **日期**: 2026-07-17
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 基本信息
|
|||
|
|
|
|||
|
|
| 项目 | 内容 |
|
|||
|
|
|------|------|
|
|||
|
|
| **任务名称** | 零信任VPN账号申请卡片免登录修复 |
|
|||
|
|
| **任务ID** | #76 |
|
|||
|
|
| **优先级** | 🟠P1 |
|
|||
|
|
| **类型** | Bug修复 |
|
|||
|
|
| **状态** | ✅ 已完成(保留扫码登录作为人机校验) |
|
|||
|
|
| **负责人** | 宋献 |
|
|||
|
|
| **创建日期** | 2026-07-17 |
|
|||
|
|
| **计划完成日期** | 2026-07-17 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📥 输入项来源
|
|||
|
|
|
|||
|
|
### 产品需求
|
|||
|
|
| 来源文档 | 相关章节 | 说明 |
|
|||
|
|
|----------|----------|------|
|
|||
|
|
| `01-产品文档/IT智能服务台-产品需求文档PRD-v2.md` | §3.2 智能推荐卡片 | 员工通过AI推荐卡片直接跳转到ITSM审批 |
|
|||
|
|
| `02-技术文档/实现配置/dify_main_chat_prompt_v1.1.md` | - | Dify返回的approval_type为中文分类名"账号权限申请" |
|
|||
|
|
|
|||
|
|
### 技术架构
|
|||
|
|
| 来源文档 | 相关章节 | 说明 |
|
|||
|
|
|----------|----------|------|
|
|||
|
|
| 本次用户提供的认证配置信息 | - | 一站式运维平台的OAuth2.0配置域名 |
|
|||
|
|
|
|||
|
|
### 用户提供的认证配置信息
|
|||
|
|
| 配置项 | 域名 |
|
|||
|
|
|--------|------|
|
|||
|
|
| 应用主页域名 | itsm.servyou.com.cn |
|
|||
|
|
| OAuth2.0网页授权回调域名 | biz.17win.com |
|
|||
|
|
| JS-SDK可信域名 | itsm.shuiyou.com.cn |
|
|||
|
|
| 跳转小程序可信域名 | itsm.shuiyou.com.cn |
|
|||
|
|
| Web网页扫码登录回调域名 | devops.dc.servyou-it.com |
|
|||
|
|
|
|||
|
|
**关键发现**:
|
|||
|
|
1. 从 `itsm.servyou.com.cn`(企微应用主页)打开时,可实现免登录认证。
|
|||
|
|
2. **重要约束**:`itsm.servyou.com.cn` 是移动端 SPA(`/itsm-miniapp-mobile/`),服务器**未配置 SPA fallback**,所有子路由(如 `/pages/login/index`、`/createTicket/:name`)直接 URL 访问均返回 404。仅应用首页 `/itsm-miniapp-mobile/` 返回 200 且免登录。
|
|||
|
|
3. 因此**无法深链到具体工单创建表单**,卡片只能落到 ITSM 移动端首页(免登录),由用户点选创建工单。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📤 输出成果要求
|
|||
|
|
|
|||
|
|
### 交付物清单
|
|||
|
|
|
|||
|
|
| # | 交付物 | 类型 | 说明 |
|
|||
|
|
|---|--------|------|------|
|
|||
|
|
| 1 | 后端修改 | 代码 | 修改 `approval.py` 中ITSM跳转URL域名 |
|
|||
|
|
| 2 | 前端修改 | 代码 | 修改 `RecommendCard.vue` 中URL映射 |
|
|||
|
|
| 3 | 部署验证 | 验证 | 企微H5实际测试通过 |
|
|||
|
|
|
|||
|
|
### 代码要求
|
|||
|
|
- 遵循项目代码规范
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 验证方式
|
|||
|
|
|
|||
|
|
### 功能验证
|
|||
|
|
| 验证项 | 验证方法 | 预期结果 |
|
|||
|
|
|--------|----------|-----------|
|
|||
|
|
| 跳转URL域名变更 | 代码检查 | URL从devops改为itsm.servyou.com.cn |
|
|||
|
|
| 按钮点击跳转 | 企微H5实际测试 | 点击按钮直接跳转ITSM工单页面 |
|
|||
|
|
| 免登录验证 | 跳转后检查 | 无需扫码直接显示ITSM工单创建表单 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ✅ 完成标准
|
|||
|
|
|
|||
|
|
### 验收条件
|
|||
|
|
|
|||
|
|
- [x] 问题分析完成
|
|||
|
|
- [x] 代码修改完成
|
|||
|
|
- [x] 部署验证通过
|
|||
|
|
- [x] 用户测试通过(扫码登录保留为人机校验,用户确认接受)
|
|||
|
|
|
|||
|
|
### 产出确认
|
|||
|
|
|
|||
|
|
- [x] 代码已提交
|
|||
|
|
- [x] 部署验证已完成
|
|||
|
|
- [x] 任务说明书已更新
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 工作分解
|
|||
|
|
|
|||
|
|
### 子任务
|
|||
|
|
|
|||
|
|
| 子任务 | 负责人 | 预估工时 | 状态 |
|
|||
|
|
|--------|--------|----------|------|
|
|||
|
|
| 修改后端approval.py中ITSM URL域名 | 宋献 | 0.5h | ✅ 已完成 |
|
|||
|
|
| 修改前端RecommendCard.vue中URL映射 | 宋献 | 0.5h | ✅ 已完成 |
|
|||
|
|
| 部署验证 | 宋献 | 0.5h | ✅ 已完成 |
|
|||
|
|
| 用户测试确认 | 宋献 | 0.5h | ✅ 已完成 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📞 依赖与阻塞
|
|||
|
|
|
|||
|
|
### 前置依赖
|
|||
|
|
| 依赖任务 | 依赖说明 | 状态 |
|
|||
|
|
|----------|----------|------|
|
|||
|
|
| 无 | 独立任务 | - |
|
|||
|
|
|
|||
|
|
### 阻塞因素
|
|||
|
|
| 阻塞项 | 影响范围 | 解决方案 |
|
|||
|
|
|--------|----------|----------|
|
|||
|
|
| 无 | - | - |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📈 变更记录
|
|||
|
|
|
|||
|
|
| 日期 | 变更内容 | 变更人 | 说明 |
|
|||
|
|
|------|----------|--------|------|
|
|||
|
|
| 2026-07-17 | 创建任务 | 宋献 | 初始版本v1.0 |
|
|||
|
|
| 2026-07-17 | 更新方案 | 宋献 | v2.0:改用itsm.servyou.com.cn域名实现免登录 |
|
|||
|
|
| 2026-07-17 | 终态决策 | 宋献 | v3.0:保留桥接页现状,扫码登录定为人机校验;技术限制同步写入 PRD §v2.3 与架构 §15.4.9 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📎 附件
|
|||
|
|
|
|||
|
|
### 修复方案说明
|
|||
|
|
|
|||
|
|
**问题现象**:用户点击零信任VPN账号申请卡片后,跳转到 Web ITSM 工单深链需要扫码登录(非免登录)。
|
|||
|
|
|
|||
|
|
**演进过程**:
|
|||
|
|
|
|||
|
|
| 版本 | 方案 | 结果 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| v1.0(初版) | 深链直跳 `devops.dc.servyou-it.com/ITSM/...` | ❌ 弹扫码 |
|
|||
|
|
| v2.0(回退) | 统一改为 ITSM 移动端首页 `https://itsm.servyou.com.cn/itsm-miniapp-mobile/`(免登录,但需手动点选工单,不符合"一步直达") | ⚠️ 免登录但需二次点击 |
|
|||
|
|
| v2.1(再试) | 改回 Web 工单深链 `createTicket?name=XXX` 一步直达 | ❌ 仍弹扫码 |
|
|||
|
|
| v2.2(桥接) | 新增桥接页 `itsm-bridge.html`(隐式加载首页预热会话 + 2.5s 自动跳深链),3 个源文件 31 处 URL 改为桥接页 | ❌ 企微内实测仍弹扫码(跨域 iframe 预热被 ITSM 拒绝) |
|
|||
|
|
| v3.0(终态决策) | **保持桥接页现状**,将扫码登录定为人机校验(Human-Machine Verification),企业安全合规可接受,不视为缺陷 | ✅ 已决策 |
|
|||
|
|
|
|||
|
|
**根因**:Web ITSM 不支持静默企微 OAuth;移动端首页静默 OAuth 仅在其自身域 (`itsm.servyou.com.cn`) 生效;跨域 iframe 预热被拒。三步流缺一环即冷 hit 弹扫码。
|
|||
|
|
|
|||
|
|
**修改文件(v2.2)**:
|
|||
|
|
| 文件 | 说明 |
|
|||
|
|
|------|------|
|
|||
|
|
| `frontend-h5/public/itsm-bridge.html` | 新增桥接页(静态资源) |
|
|||
|
|
| `backend/app/api/approval.py` | 8 个运维平台模板 URL → 桥接页 |
|
|||
|
|
| `frontend-h5/src/components/assistant/RecommendCard.vue` | 15 处 URL → 桥接页 |
|
|||
|
|
| `frontend-h5/src/components/chat/ApprovalCardModal.vue` | 8 处 URL → 桥接页 |
|
|||
|
|
|
|||
|
|
**未改动(2 个企微审批模板)**:IT资产领用 (asset_receive)、IT资产借用 (asset_borrow) 属企微审批流程,非 ITSM,不在本改造范围,按 `approval_templates.json` 数据源定义保持。
|
|||
|
|
|
|||
|
|
**部署验证**:桥接页经 nginx `curl` → `HTTP/1.1 200 OK`;部署的 `approval.py` 含桥接 URL 8 处;H5 构建 JS 含桥接 URL;两个 tar 包远端 MD5 与本地完全一致;5 容器全 healthy。技术限制已写入 PRD §v2.3 与架构文档 §15.4.9。
|