基础架构 · 一站式工作台 / SSO产品文档
版本: v0.1
日期: 2026-07-06
归属: 基础架构 / 一站式工作台 / SSO
1. 产品定位
为内部员工、研发、运营、售后、管理层提供统一登录、统一菜单、统一权限和跨系统待办入口,减少账号散落和权限失控。
飞书做协同入口,内部工作台聚合业务入口和权限上下文,SSO/RBAC 统一账号与访问控制。
| 定位维度 | v0.1 口径 |
|---|---|
| 建设阶段 | 试产期最小可运营底盘,不做过度平台化。 |
| 事实源原则 | 飞书做协同入口,协同入口与身份底座的配置、记录和审计进入结构化系统。 |
| 180 天目标 | 先跑通核心闭环,再按容量、安全和自动化逐步增强。 |
2. 使用对象与核心诉求
| 使用对象 | 核心诉求 |
|---|---|
| 内部员工 | 一个入口进入常用系统、待办、审批和知识链接。 |
| IT/权限管理员 | 统一管理账号、角色、系统授权和离职回收。 |
| 业务负责人 | 按岗位配置菜单和数据权限。 |
| 审计/安全 | 追踪登录、授权、提权和敏感操作。 |
3. 系统边界
| 负责 | 不负责 |
|---|---|
| SSO、账号同步、组织架构映射、RBAC、菜单聚合、应用入口、飞书消息/审批/任务聚合。 | 各业务系统的业务数据事实源、飞书原生组织治理、复杂低代码门户建设。 |
4. 核心场景
- 新员工入职后自动同步账号,按部门岗位获得工作台菜单。
- 员工从飞书或浏览器进入工作台,SSO 跳转到 GitLab、管理后台、监控等系统。
- 岗位调整或离职时回收业务系统权限并保留审计。
- 管理层从工作台看到关键系统入口、待办和试产风险看板。
5. 功能清单
| 功能 | 说明 |
|---|---|
| 统一登录 | 对接飞书/企业 IdP,提供 SSO、MFA 和会话管理。 |
| 组织与账号 | 同步组织、人员、岗位、状态,维护系统账号映射。 |
| RBAC | 角色、权限、菜单、数据范围和临时授权。 |
| 工作台入口 | 系统入口、常用链接、待办聚合、告警入口和知识入口。 |
| 权限审计 | 授权、提权、回收、登录和异常访问审计。 |
6. 业务流程
- 同步组织账号
- 配置角色和菜单
- 用户 SSO 登录
- 访问业务系统
- 记录权限和登录审计
- 离职/转岗回收
7. 权限与运营规则
- 飞书组织信息可作为账号同步来源,但业务系统权限事实源落在 SSO/RBAC。
- 高权限角色启用到期时间、审批和定期复核。
- 离职账号必须自动禁用,外包/临时账号必须设置有效期。
- 生产系统管理员权限不得与普通业务操作权限混用。
8. 验收指标
| 指标 | 验收口径 |
|---|---|
| 账号收口 | 核心内部系统 90% 以上接入 SSO。 |
| 离职回收 | 离职账号 1 小时内禁用,核心权限 100% 回收。 |
| 临时授权 | 临时高权限 100% 有到期时间和审批记录。 |
| 入口覆盖 | 研发、运维、运营、售后常用系统入口 100% 在工作台可见。 |
9. 里程碑
| 阶段 | 交付物 |
|---|---|
| 0-30 天 | 完成 SSO 选型、账号同步、角色模型、首版工作台信息架构。 |
| 31-90 天 | 接入 GitLab、管理后台、监控、文档、审批和核心业务系统。 |
| 91-180 天 | 补齐数据权限、权限复核、临时授权、登录风险和待办聚合。 |
10. 风险点
| 风险 | 应对 |
|---|---|
| 把工作台做成大而全门户 | v0.1 只做入口、SSO、权限和待办聚合,不承载业务事实数据。 |
| 权限模型过细导致落地慢 | 先按岗位/系统/菜单三级,数据权限逐步补齐。 |
| 飞书与业务权限混淆 | 飞书是协同入口,系统授权以 SSO/RBAC 为准。 |
06.06.05 管理后台基座与认证接入决议
状态:accepted,生效日期 2026-07-16。该决议替代旧版 WORKSPACE_SSO_SELECTION 中的 Casdoor / React SPA / Casbin 推荐,以及旧版 ADMIN_CONSOLE_SELECTION 中的 Ant Design Pro + Go/Gin 推荐。
06.06.05.1 架构决议
| 主题 | 决议 | 边界与约束 |
|---|---|---|
| 仓库边界 | 新建 infimaker-admin-fe 与 infimaker-admin-be 两个仓库,前后端分离、分仓管理。 | 前端只承载 Portal、原生管理页和 iframe 容器;后端只承载管理控制面,不吞并业务后端。 |
| 前端基座 | infimaker-admin-fe 采用 pure-admin-thin,技术栈为 Vue3、TypeScript、Vite、Element Plus、Pinia、Vue Router、Axios。 | 选择精简模板,便于前端不熟悉的团队使用 AI 稳定生成 CRUD 页面;商用前需保留 MIT 版权/许可声明并做依赖、图标、字体、模板素材 license 扫描。 |
| 后端基座 | infimaker-admin-be 采用 SpringBoot,自建飞书 SSO、管理员 RBAC、菜单、权限码、审计、iframe 白名单、一次性 SSO ticket 和外部系统管理适配器。 | 后端直连 Admin DB;Controller / Service / Repository 分层;所有写操作进入审计。 |
| 认证入口 | 管理后台唯一登录入口为飞书 SSO,OAuth code flow 由 admin-be 服务端完成;前端不保存飞书 client_secret、飞书 user_access_token 或长期 JWT。 | 优先使用 HttpOnly + Secure Cookie 承载管理后台会话;飞书用户身份映射以 tenant_key + union_id 优先,拿不到时退到 tenant_key + open_id。 |
| 业务后端边界 | cert_center、ota_be、sn_center 不在 admin-be 内实现;它们保持独立业务服务和独立数据库,只消费 admin-be 的管理员认证授权能力。 | 接入方式优先 JWT/JWKS 或统一 Gateway;业务服务必须在后端强校验自己的权限码,不能只依赖前端菜单隐藏。 |
auth_be 管理 | auth_be 是外部用户认证系统,运行时保持独立;其管理职能由 admin-be 通过管理 API 执行。 | 管理员身份与外部用户身份分离;admin-be 不直接写 auth_be 数据库,除非没有管理 API 且单独评审风险。 |
| 已有后台嵌入 | 允许通过 iframe 嵌入已有内部管理后台;admin-fe 负责统一菜单入口和 iframe 容器。 | 旧后台优先接飞书 SSO 或统一同站 Cookie;禁止把长期 JWT / Session token 放入 iframe URL,禁止随意 postMessage 传长期 token。无法改造时只允许使用 30-60 秒、一次性、绑定用户/系统/权限/redirect 的短期登录票据。 |
| 数据事实源 | 业务事实源保留在各业务服务;admin-be 只保存管理员、角色、权限、菜单、系统注册、审计和 SSO ticket 等控制面数据。 | 不得让 admin-be 变成 OTA、SN、证书、外部用户认证的大单体。 |
06.06.05.2 目标架构
flowchart TD
FE["infimaker-admin-fe\npure-admin-thin / Vue3 / Element Plus"] --> ADM["infimaker-admin-be\nSpringBoot Admin Control Plane"]
ADM --> FS["飞书 SSO"]
ADM --> ADB[("Admin DB\n管理员/RBAC/菜单/审计")]
ADM --> AUTH["auth_be\n外部认证系统管理 API"]
FE --> GW["统一 Admin API 域名 / Gateway"]
GW --> ADM
GW --> OTA["ota_be\n独立业务服务"]
GW --> SN["sn_center\n独立业务服务"]
GW --> CERT["cert_center\n独立业务服务"]
OTA --> ODB[("OTA DB")]
SN --> SDB[("SN DB")]
CERT --> CDB[("Cert DB")]
FE --> IFRAME["iframe 旧后台\nSSO / 同站 Cookie / 一次性 ticket"]
06.06.05.3 执行计划
| 阶段 | 交付物 | 验收口径 |
|---|---|---|
| P0 仓库与基座 | 创建 infimaker-admin-fe、infimaker-admin-be;前端初始化 pure-admin-thin;后端初始化 SpringBoot、OpenAPI、统一响应、异常处理、审计基础表。 | 两个仓库可独立启动;前端构建通过;后端健康检查与 OpenAPI 可访问;license 扫描基线生成。 |
| P1 飞书 SSO | admin-be 实现 /api/auth/feishu/login、/api/auth/feishu/callback、/api/auth/me、/api/auth/logout;完成飞书用户到管理员用户的映射。 | 管理员可通过飞书登录后台;会话使用 HttpOnly Secure Cookie;前端不持有飞书 token 或 client_secret;登出后 /api/auth/me 返回 401。 |
| P2 RBAC 与菜单 | 实现管理员、角色、权限码、菜单、数据范围基础模型;前端实现动态菜单、权限指令和 403 页面。 | 不同角色看到不同菜单;按钮按权限码显示;后端接口对无权限访问返回 403;所有授权变更有审计。 |
| P3 业务服务接入 | 定义 JWT/JWKS 或 Gateway 鉴权规范;ota_be、sn_center、cert_center 接入管理员身份和权限码校验。 | 业务服务不依赖 admin-be 数据库;服务端能校验权限码;前端可通过统一 Admin API 域名访问业务管理接口。 |
P4 auth_be 管理 | admin-be 接入 auth_be 管理 API,提供外部用户、应用、密钥、策略、禁用、审计查询等管理页面接口。 | 管理操作由 admin-be 先校验 auth.* 权限并写审计;不直连 auth_be 数据库;外部用户身份不与管理员身份混表。 |
| P5 iframe 旧后台 | 实现 iframe 系统注册、URL 白名单、CSP/frame-ancestors 约束和一次性短期登录票据流程。 | 白名单外 URL 无法嵌入;旧后台不接收长期 token;一次性票据 30-60 秒有效且兑换后作废;iframe 入口受 legacy.*.view 权限控制。 |
| P6 原生 CRUD 模块 | 按优先级建设 RBAC、用户中心、SN、OTA、设备云、证书中心、金蝶 BOM/物料等原生 Vue + Element Plus 页面;后端通过 OpenAPI 生成前端类型。 | 每个模块具备列表、查询、详情、新增/编辑、删除/发布等受控操作;高危动作二次确认并审计;AI 生成页面必须基于 OpenAPI 类型和既有页面模式。 |
| P7 安全与运维加固 | 补齐 rate limit、CSRF、CORS、CSP、审计检索、操作水印、依赖安全扫描、备份和监控告警。 | 无明文密钥入库或入日志;依赖漏洞和 license 风险有清单;核心写操作 100% 可追溯到管理员、对象、前后值和 trace_id。 |
06.06.05.4 禁止反模式
- 禁止把
ota_be、sn_center、cert_center的核心业务逻辑搬进admin-be。 - 禁止多个服务共享
admin-be内部表结构或直接读取 Admin DB。 - 禁止把长期 JWT、Session、飞书
user_access_token放入 iframe URL、localStorage 或不校验 origin 的 postMessage。 - 禁止只做前端权限隐藏而缺少业务后端强校验。
- 禁止把管理员用户和
auth_be外部用户混用一张身份表。