Files
starRiverProperty/docs/testing/release-visitor-noauth-verify/访客无鉴权策略验证-生产操作手册.md
T
反编译工作区 8b15445328 feat: add service config templates and extraction script
Former-commit-id: 1de24b7eb79676d1aba9d799a58c5a753290cf52
2026-05-01 19:38:01 +08:00

163 lines
4.3 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.
# 访客无鉴权策略验证-生产操作手册
## 1. 文档目的
本手册用于生产环境执行以下验证并留痕:
- 在**无鉴权模式**下调用访客相关接口,确认是否存在放开风险。
- 验证“黄平(访客)访问蒙海文(被访人)”是否触发访客楼层策略。
- 输出可审计报告(JSON)用于归档与发布。
本手册基于已确认信息:
- 被访人(蒙海文)`personId=964454497399468032`
- 访客(黄平)`personId=1102270499947507712`
- 租户 `businessId=2524639890ba4f2cba9ba1a4eeaa4015`
---
## 2. 目录与交付件
本发布包目录:
- `docs/testing/release-visitor-noauth-verify/访客无鉴权策略验证-生产操作手册.md`
- `docs/testing/release-visitor-noauth-verify/黄平访客ID手工查询.sql`
执行脚本(仓库已有,已按无鉴权流程更新):
- `maven-cw-elevator-application/tools/visitor_floor_verification/scripts/quick_verify_visitor_floor_policy.py`
---
## 3. 验证范围
本次仅验证以下调用链:
1. `POST /component/person/detail`
2. `POST /elevator/person/add/visitor`
3. `POST /elevator/passRule/image`
请求模式:
- `noauth-probe`(不传 Authorization/loginid/platformuserid/applicationid
- 可选保留 `businessid` 头:`--probe-with-businessid`
---
## 4. 前置条件
### 4.1 运行环境
- 可访问生产网络的 Linux 主机
- Python 3.8+
- 已拉取本仓库代码
### 4.2 依赖安装
```bash
cd maven-cw-elevator-application/tools/visitor_floor_verification
python3 -m pip install -r requirements.txt
```
---
## 5. 参数基线
建议使用以下固定参数:
- `org-base-url``http://10.0.22.207:8089`(按现场网关/portal入口可调整)
- `elevator-base-url``http://10.0.22.207:16112`
- `business-id``2524639890ba4f2cba9ba1a4eeaa4015`
- `meng-person-id``964454497399468032`
- `visitor-person-id``1102270499947507712`
说明:
- 当前脚本内置默认 `--meng-person-id=964454497399468032`,可不显式传参。
---
## 6. 标准执行命令
```bash
python3 maven-cw-elevator-application/tools/visitor_floor_verification/scripts/quick_verify_visitor_floor_policy.py \
--mode noauth-probe \
--org-base-url "http://10.0.22.207:8089" \
--elevator-base-url "http://10.0.22.207:16112" \
--business-id "2524639890ba4f2cba9ba1a4eeaa4015" \
--visitor-person-id "1102270499947507712" \
--probe-with-businessid
```
---
## 7. 输出与结果判定
脚本终端会输出:
- `mode`
- `grade`
- `summary`
- `report`(报告文件路径)
- `add_visitor_status/code`
- `passrule_image_status/code`
报告文件输出目录:
- `maven-cw-elevator-application/tools/visitor_floor_verification/report/quick-verify-<timestamp>.json`
### 7.1 关键判定规则
#### A. 无鉴权风险判定(noauth-probe
- `grade=high_risk``add/visitor` 在无鉴权下业务成功,判定高风险放开。
- `grade=expected_block`:返回 401/403,判定符合安全预期。
- `grade=needs_review`:非拦截但未成功,需人工复核网关策略。
#### B. 策略触发判定
-`add/visitor` 成功,且 `passRule/image` 回读到楼层数据,判定策略触发成功。
-`add/visitor` 返回 `76260532`,表示策略求交为空(策略生效但无可放行楼层)。
---
## 8. 黄平访客ID手工复核
可执行以下命令打印 SQL 模板:
```bash
python3 maven-cw-elevator-application/tools/visitor_floor_verification/scripts/quick_verify_visitor_floor_policy.py \
--print-visitor-sql-only \
--org-base-url "http://10.0.22.207:8089" \
--elevator-base-url "http://10.0.22.207:16112" \
--visitor-person-id "dummy"
```
或直接使用本包 SQL 文件:
- `docs/testing/release-visitor-noauth-verify/黄平访客ID手工查询.sql`
---
## 9. 发布归档建议
建议将以下文件打包归档:
1. 本操作手册
2. SQL 文件
3. 实际执行命令记录
4. `quick-verify-<timestamp>.json` 报告
5. 关键日志截图(含执行时间与业务码)
建议包名:
- `visitor-noauth-verify-<yyyyMMdd-HHmm>.zip`
---
## 10. 风险提示
- 本流程为生产探测,务必在低峰窗口执行。
- 无鉴权探测若成功,属于安全风险项,应立即同步网关/服务鉴权负责人处理。
- 所有返回结果以现场实际响应为准,需保留原始响应证据。