任务说明书 - 零信任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 |
关键发现:
- 从
itsm.servyou.com.cn(企微应用主页)打开时,可实现免登录认证。
- 重要约束:
itsm.servyou.com.cn 是移动端 SPA(/itsm-miniapp-mobile/),服务器未配置 SPA fallback,所有子路由(如 /pages/login/index、/createTicket/:name)直接 URL 访问均返回 404。仅应用首页 /itsm-miniapp-mobile/ 返回 200 且免登录。
- 因此无法深链到具体工单创建表单,卡片只能落到 ITSM 移动端首页(免登录),由用户点选创建工单。
📤 输出成果要求
交付物清单
| # |
交付物 |
类型 |
说明 |
| 1 |
后端修改 |
代码 |
修改 approval.py 中ITSM跳转URL域名 |
| 2 |
前端修改 |
代码 |
修改 RecommendCard.vue 中URL映射 |
| 3 |
部署验证 |
验证 |
企微H5实际测试通过 |
代码要求
🔧 验证方式
功能验证
| 验证项 |
验证方法 |
预期结果 |
| 跳转URL域名变更 |
代码检查 |
URL从devops改为itsm.servyou.com.cn |
| 按钮点击跳转 |
企微H5实际测试 |
点击按钮直接跳转ITSM工单页面 |
| 免登录验证 |
跳转后检查 |
无需扫码直接显示ITSM工单创建表单 |
✅ 完成标准
验收条件
产出确认
📊 工作分解
子任务
| 子任务 |
负责人 |
预估工时 |
状态 |
| 修改后端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。