Skip to content

系统概览

IAM 是企业内部统一身份提供商。它负责认证用户、签发 OAuth/OIDC 令牌和管理平台访问;接入应用仍应维护自身的业务授权规则。

  • 企业微信开户后,可用已验证企业邮箱和密码作为备用登录;不开放匿名邮箱注册
  • 重置密码后撤销旧会话
  • 企业微信 OAuth 登录,以 CorpID + UserID 作为权威身份
  • 禁止按邮箱隐式合并企业微信身份,降低错误绑定风险
  • 首次登录资料补全、用户封禁和会话撤销
  • 企微 UserID 白名单引导平台管理员角色

验证邮件和重置邮件通过 Cloudflare EMAIL Binding 发送。企业微信占位邮箱不可投递,认证邮件会跳过。

  • Authorization Code、PKCE、Refresh Token、Client Credentials
  • OIDC Discovery、RFC 8414 元数据、JWKS、ID Token、UserInfo
  • OAuth 客户端创建、编辑、禁用、删除和密钥轮换
  • public/confidential client 与 Token 端点认证方式
  • 用户授权记录、scope 和可选跳过 consent
  • wecom_user_iddepartment_idapp_role 自定义 claims

客户端可通过 allowedUsersallowedDepartments 控制可见范围,并为用户或部门分配应用角色。平台角色只控制 IAM 控制台权限,业务系统仍需维护自己的 RBAC,并明确如何使用 app_role

  • genericOAuth 仅注册 wecom,作为当前企业微信登录入口
  • 通讯录回调支持增量同步
  • 内部 Cron 接口支持全量同步
  • 本地维护部门、成员、成员部门关系和同步任务
  • wecom-app account 仅用于存量身份迁移,不再作为登录入口

企业微信“组织架构”是通讯录能力,不等同于 Better Auth organization 多租户插件。

平台管理员可访问:

  • 系统概览、用户管理、组织架构、平台/应用角色
  • 会话管理、日志审计、OIDC 客户端和授权记录
  • 系统设置、个人资料和全局搜索

普通用户通过“我的应用”查看自己可访问的 OAuth 客户端。

  • PostgreSQL 保存用户、账号、session、verification、OAuth、企微、限流和审计数据
  • Neon HTTP 用于运行时访问,迁移优先使用 direct connection
  • R2 UPLOADS Binding 保存上传文件
  • iam-web 通过 AUTH_API Service Binding 调用 iam-api
  • 浏览器统一访问 Web 域名下的 /api/*,公开 issuer 为 https://iam.cq-i.cn/api/auth

当前产品明确不使用:

  • Redis / Better Auth secondary storage
  • Better Auth organization 插件
  • Vercel Blob
  • 以 IAM 平台角色替代接入应用本地 RBAC

MFA/TOTP、SCIM、外部企业 IdP 和多租户属于后续按产品需求评估的能力。上线前剩余重点见仓库根目录 TODO.md