mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-12 01:40:30 +08:00
8b15445328
Former-commit-id: 1de24b7eb79676d1aba9d799a58c5a753290cf52
163 lines
4.3 KiB
Markdown
163 lines
4.3 KiB
Markdown
# 访客无鉴权策略验证-生产操作手册
|
||
|
||
## 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. 风险提示
|
||
|
||
- 本流程为生产探测,务必在低峰窗口执行。
|
||
- 无鉴权探测若成功,属于安全风险项,应立即同步网关/服务鉴权负责人处理。
|
||
- 所有返回结果以现场实际响应为准,需保留原始响应证据。
|