IWish Auth开发者文档
V1 Alpha GitHub

接入 Checklist

上线前逐项检查身份、权限与安全边界

在 App 进入 staging 和 production 前逐项确认。未标明“不适用”的项目必须有可复核证据。

App 与 Manifest

  • appKey 唯一、稳定、全小写,所有 permission/role 位于该命名空间。
  • Manifest 包含 {app}.access
  • 权限是业务动作,不包含客户、部门、用户或 UI 组件。
  • 角色只引用当前 Manifest 已声明权限。
  • 本地 manifest validate 通过。
  • 远程预检 diff 已审核,manifestVersion 唯一。
  • prod Manifest 有 owner/管理员审批和回滚版本。

OAuth 与 Session

  • 每个环境、每个 App 使用独立 OAuth client。
  • callback 使用 HTTPS(本地开发除外)并精确登记。
  • clientSecret 只在服务端 secret manager。
  • state、PKCE S256 和一次性 code 均由 SDK/服务端处理。
  • App session cookie 包含 HttpOnly、Secure、SameSite=Lax、Path。
  • 业务 App 不解析 opaque token,不信任身份 Header。
  • 局部登出和全局登出均已验证。

身份边界

  • 内部员工只走飞书统一身份,不维护第二套 Auth 员工账号。
  • 外部访问账号走邀请/邮箱密码,不强制飞书。
  • 业务 App 不接飞书 OAuth、通讯录或保存飞书 token。
  • 业务 App 不直接查询 Supabase Auth 或 IWish Auth 数据库。
  • 员工离职/冻结后现有 App session 失效。

权限与业务数据

  • 每个受保护服务端路由执行 requireAppAccess 和必要的 requirePermission
  • 前端隐藏按钮不能替代服务端权限检查。
  • 跨 App permission 和 session 被拒绝。
  • 业务数据归属、客户隔离和字段权限保留在 App 内。
  • clientAssignments 只用于项目上下文,不替代 permission。
  • clientAssignments 不会自动扩大权限或导致登录失败。

迁移清理

  • 本地登录、注册、找回密码和密码重置入口已移除。
  • 本地统一角色分配写入口已移除。
  • 旧用户到 IWish Auth user ID 映射已复核。
  • 旧密码 hash、session 和 secrets 有明确下线时间。
  • 不保留 Auth Proxy 或长期双登录。

测试与运维

  • 401、403、允许访问、角色撤销、App 停用和 secret 轮换测试通过。
  • 内部员工和外部账号登录路径通过。
  • 桌面和移动端 callback/登出流程通过。
  • 日志和错误页面不泄漏 token、secret、密码或敏感个人信息。
  • Auth API 超时、不可达和稳定错误码有明确用户体验。
  • 监控覆盖登录成功率、401/403 异常、callback 错误和关键业务指标。
  • 生产回滚命令、负责人和触发阈值已经演练。

AI Agent 交付

  • Agent 读取 /llms.txt/llms-full.txt 后再修改代码。
  • Agent 没有创建飞书/Supabase 直连或自定义 token 解析。
  • Agent 使用真实 SDK 导出和当前 Manifest schema。
  • Agent 输出变更文件、权限映射、验证命令和未决风险。
  • 人工复核身份、权限、secrets 和数据授权边界。