项目介绍
统一认证中心是 AI 项目演示平台的平台底座,负责统一身份、统一授权与多租户治理。它不承载考试、知识库等业务数据,只向各子系统提供登录、权限与组织信息。
考试系统、知识库、源码库都以 SSO Client 接入,通过一次性 ticket 建立本地会话,避免每个系统各自维护一套账号与角色。
技术栈
- 后端:Java 17、Spring Boot 3.5、Sa-Token、MyBatis-Plus
- 数据:MySQL 8(somp)、Redis
- 前端:Vue 3、Vite、TypeScript、Element Plus
- 接入:Sa-Token SSO、ticket 换票、会话同步与单点注销
功能清单
| 模块 | 功能 |
|---|---|
| 登录认证 | 账号密码、图形验证码、MFA、短信登录、LDAP/AD、演示登录 |
| 单点登录 | SSO Server、ticket 换票、会话同步 pushC、单点注销 logoutCall |
| RBAC | 角色、菜单、权限码、应用菜单授权、角色继承 |
| ABAC | 组织物化路径、数据权限前缀、MyBatis 拦截器注入查询条件 |
| 多租户 | 租户生命周期、租户菜单、租户注册审核、应用入口白名单 |
| 平台治理 | 用户、角色、组织、部门、应用、菜单、字典与通知 |
| 消息能力 | 站内信、推送、短信模板与记录、邮件配置与发送台账 |
| 安全审计 | 写请求审计、敏感读审计、字段脱敏、哈希链完整性校验 |
| 双人复核 | 四眼原则审批单据、审批处理器与审批中心 |
| 个人中心 | 资料、改密、MFA、换绑、登录设备与在线会话 |
技术架构
iam-ui :3001
↓
Nginx
├─ /sso/* → iam-app :18003
└─ 页面 → iam-ui
iam-app :18003(SSO Server)
├─ iam-controller
├─ iam-service
├─ MySQL somp(sys_*)
└─ Redis(会话 / 锁)
SSO Client:
exam-app :18004
kb-app :18005
ai-portal-app :18006
认证中心签发一次性 ticket,子系统换票后拿到用户快照、租户、角色、菜单与权限码,后续请求走本地会话。权限策略变更时刷新在线会话,避免已取消的权限继续生效。