Files
caiwuzongzhang/docs/issues/003-p0-auth-and-tenant-isolation.md
T
2026-08-23 14:26:55 +08:00

1.5 KiB

⚠️ 本文档已过时,仅留档备查,请勿删除。该历史任务已落地;当前状态见 ../任务清单.md

[P0] 正式认证、RBAC 与公司级数据隔离

背景

当前登录页不校验密码;公司端固定显示 A 公司。服务端没有用户、会话和授权逻辑,任何浏览器都可直接访问总账或公司页面并调用解析接口。

范围

  • 实现系统管理员和公司出纳两类角色的真实账号、密码哈希、首次改密、停用和会话。
  • 公司账号绑定且只绑定一个公司;总账角色拥有跨公司管理权限。
  • 对读取、上传、导出、审核、提醒、设置和结账接口逐项做服务端授权。
  • 定义会话过期、退出、失败登录限速和审计日志。
  • 页面路由保护只作为体验层,不能代替 API 权限。

验收标准

  • 无会话访问受保护页面/API 返回未认证状态。
  • 公司用户无法通过修改 URL、参数或请求体访问其他公司数据。
  • 公司用户不能调用总账审核、主数据、起算日和结账接口。
  • 管理员可创建、停用、重置公司账号;初始密码只显示一次并强制修改。
  • 密码不以明文保存或记录到日志。
  • 权限矩阵有自动化测试,覆盖 IDOR、跨公司导出和跨公司上传。

测试

  • 登录、退出、过期会话、停用账号、首次改密测试。
  • 每个资源类型至少一个跨公司拒绝测试。

依赖

Issue 002。