IWish Auth开发者文档
V1 Alpha GitHub

迁移 Playbook

按阶段执行、回滚和验收真实 App 迁移

本 Playbook 用于真实业务 App 迁移执行。每个 App 建立独立迁移记录,填写负责人、时间、证据链接和最终结论。

阶段 A:立项与风险分级

  • 指定业务负责人、App owner、Auth 平台负责人和回滚负责人。
  • 记录技术栈、生产域名、用户规模、关键业务时段。
  • 标记是否包含高风险数据导出、审批、删除或客户隔离。
  • 确定 dev、staging、prod 的独立 App/client 配置。
  • 确定维护窗口、回滚窗口和通知对象。

输出:迁移卡片、风险等级、时间表。

阶段 B:身份与权限盘点

  • 导出旧用户、角色和用户角色关系。
  • 列出全部服务端保护点和前端角色判断。
  • 区分 App 权限、业务数据授权和客户项目上下文。
  • 形成旧角色到新 permission/role 的映射表。
  • 复核内部员工与飞书身份映射,外部账号单独列出。

输出:permission-mapping.md、用户映射清单、异常账号清单。

阶段 C:Dev 接入

  • 编写 auth.manifest.json 并通过本地校验。
  • 管理员完成 Manifest 预检和同步。
  • 创建 dev OAuth client,登记精确 callback。
  • SDK 登录、callback、App session、登出接入完成。
  • 服务端权限检查替换完成。
  • clientAssignments 仅在需要的流程中消费。
  • 本地密码、角色写入口已从新代码路径移除。

输出:代码 PR、Manifest diff、自动测试。

阶段 D:Staging 验收

  • 内部员工飞书登录。
  • 外部测试账号邀请/邮箱登录。
  • 无权限、跨 App session、停用 App 和撤销角色路径。
  • 客户项目为空、多个职责、职责过期和员工离职路径。
  • 关键业务数据范围和字段授权回归。
  • 全局登出、局部登出、secret 轮换演练。
  • 日志中不含 token、secret、密码和飞书凭据。

输出:staging 验收记录、缺陷清单、回滚演练记录。

阶段 E:生产切换

  1. 冻结旧身份和角色写入。
  2. 备份必要映射与业务数据。
  3. 同步 prod Manifest,创建 prod client 和 secrets。
  4. 部署迁移版本。
  5. 执行生产 smoke test。
  6. 观察 401/403、callback、关键 API 和业务指标。
  7. 由业务负责人确认继续或触发回滚。

生产 secret 不得通过聊天、截图、工单正文或 Git 传递。

阶段 F:收尾

  • 删除旧登录、注册、找回密码和角色管理路由。
  • 清理旧密码 hash、session 和不再使用的 secrets。
  • 更新运行手册、值班手册和用户帮助。
  • 保存 Manifest、OpenAPI、测试和审计证据。
  • 记录后续改进项,但不保留长期双系统。

输出:迁移完成报告和正式下线确认。

回滚触发条件

至少定义:

  • 登录成功率低于阈值。
  • callback 或 token exchange 持续失败。
  • 权限错误导致越权或关键岗位无法工作。
  • 客户数据范围扩大或错误收窄。
  • 无法在约定时间内恢复关键业务。

越权或客户数据泄露风险出现时立即停止切换,不等待业务指标确认。