系统概览
IAM 是企业内部统一身份提供商。它负责认证用户、签发 OAuth/OIDC 令牌和管理平台访问;接入应用仍应维护自身的业务授权规则。
- 企业微信开户后,可用已验证企业邮箱和密码作为备用登录;不开放匿名邮箱注册
- 重置密码后撤销旧会话
- 企业微信 OAuth 登录,以
CorpID + UserID作为权威身份 - 禁止按邮箱隐式合并企业微信身份,降低错误绑定风险
- 首次登录资料补全、用户封禁和会话撤销
- 企微 UserID 白名单引导平台管理员角色
验证邮件和重置邮件通过 Cloudflare EMAIL Binding 发送。企业微信占位邮箱不可投递,认证邮件会跳过。
OAuth 2.1 / OpenID Connect Provider
Section titled “OAuth 2.1 / OpenID Connect Provider”- Authorization Code、PKCE、Refresh Token、Client Credentials
- OIDC Discovery、RFC 8414 元数据、JWKS、ID Token、UserInfo
- OAuth 客户端创建、编辑、禁用、删除和密钥轮换
- public/confidential client 与 Token 端点认证方式
- 用户授权记录、scope 和可选跳过 consent
wecom_user_id、department_id、app_role自定义 claims
客户端可通过 allowedUsers、allowedDepartments 控制可见范围,并为用户或部门分配应用角色。平台角色只控制 IAM 控制台权限,业务系统仍需维护自己的 RBAC,并明确如何使用 app_role。
企业微信组织同步
Section titled “企业微信组织同步”genericOAuth仅注册wecom,作为当前企业微信登录入口- 通讯录回调支持增量同步
- 内部 Cron 接口支持全量同步
- 本地维护部门、成员、成员部门关系和同步任务
- 旧
wecom-appaccount 仅用于存量身份迁移,不再作为登录入口
企业微信“组织架构”是通讯录能力,不等同于 Better Auth organization 多租户插件。
平台管理员可访问:
- 系统概览、用户管理、组织架构、平台/应用角色
- 会话管理、日志审计、OIDC 客户端和授权记录
- 系统设置、个人资料和全局搜索
普通用户通过“我的应用”查看自己可访问的 OAuth 客户端。
数据与基础设施
Section titled “数据与基础设施”- PostgreSQL 保存用户、账号、session、verification、OAuth、企微、限流和审计数据
- Neon HTTP 用于运行时访问,迁移优先使用 direct connection
- R2
UPLOADSBinding 保存上传文件 iam-web通过AUTH_APIService 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。