Files
2026-07-27 16:46:15 +08:00

36 lines
2.9 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.
# 账号外部身份源连续性审计
审计日期2026-07-23。范围覆盖账号目录、外部身份详情、身份映射缺失、桌面侧栏和移动端底部侧栏。
## 结论
1. 修复了本地接口 404 被伪装成“还没有客户账号”的异步状态错误。真实失败现在明确说明“这不是空目录”,保留筛选并提供原位重试。
2. `DATA_MODE=mock` 且未启用 SQL 身份库时提供可操作的本地账号目录,覆盖本地账号、已连接 OneOS、缺少映射的 RuoYi 和停用账号;创建、编辑、批量预检/创建仍可在本地验证。
3. 目录新增本地/外部身份数量与“身份待关联”状态;身份源进入搜索范围,缺少映射不再被菜单或车辆就绪状态掩盖。
4. 编辑器展示身份源、脱敏外部主体、映射状态与凭据归属。外部登录密码、锁定和多因素认证明确归属上游,本平台继续维护启停、菜单和车辆范围。
5. 外部身份密码输入在前端只读,生产 SQL 路径与本地演示路径都以 `EXTERNAL_IDENTITY_PASSWORD_READ_ONLY` 拒绝越界写入。
## 当前运行证据
- 基线桌面:[目录错误被伪装为空目录](before/01-desktop-directory-error-as-empty.png)
- 基线移动端:[移动目录错误被伪装为空目录](before/02-mobile-directory-error-as-empty.png)
- 改进桌面:[真实账号目录与身份状态](after/01-desktop-directory.png)
- 改进桌面:[OneOS 映射与凭据归属](after/02-desktop-external-identity.png)
- 改进桌面:[RuoYi 映射缺失与处置说明](after/03-desktop-identity-warning.png)
- 改进移动端:[紧凑账号目录](after/04-mobile-directory.png)
- 改进移动端:[外部身份详情](after/05-mobile-external-identity.png)
- 同屏对照:[桌面前后对照](comparison-desktop-before-after.png) · [移动端前后对照](comparison-mobile-before-after.png)
## 验证
- 1440 × 980目录、已连接外部身份、缺失映射告警均通过真实浏览器检查。
- 390 × 844目录单滚动、详情固定操作区和外部身份摘要通过真实浏览器检查。
- 语义:身份映射使用 `status` / `alert`;外部凭据输入为 disabled目录条目无障碍名称包含身份源与映射状态从目录打开后关闭详情会把焦点返回原账号按钮。
- 自动化:`UsersPage.test.tsx` 20 项通过Web 生产构建通过;`apps/api/internal/app` 测试通过。
## 已知边界
- 当前没有可写的上游身份适配器管理接口,因此缺失映射只能说明上游/适配器处置边界,不能在本平台直接补写外部主体。
- 外部身份真实同步延迟、重复主体冲突和上游停用回流仍需要生产身份源样本验证。
- 本轮完成语义 DOM、键盘焦点和禁用态验证未执行 VoiceOver/NVDA 人工听读;由深链直接打开详情时没有原始触发按钮,关闭后焦点回到页面主体。