系统越接越多,账号越理越乱
每上一个新系统就多一套账号。等到要给同一个人开通第三个系统时,通常已经没有统一的地方可管了。
换一个系统就要再登录一次
员工记不住那么多密码,IT 天天在帮人重置;登录状态各系统各自为政,没有一个地方能看到"这个人到底能进哪些系统"。
同一个人,装不进一个账号
他可能既是消费者、又是合作机构的成员、还是公司员工。做成一个账号一套权限,三种身份就会互相打架;做成三个账号,又对不上是同一个人。
接了新系统,老系统还得再写一遍登录
需求明明只是"用同一套登录和权限",却每次都要在旧代码里重新实现一遍,改一次权限要动好几个系统。
人走了,账号不知道该停到哪一步
离职只应该停掉员工身份,不能顺手把他作为客户或机构成员的账号一起停掉——两者的生命周期本来就不一样。
一鉴的做法是把「身份」和「账号」拆开:账号是登录凭据,身份是你在某个组织里是谁。 一个自然人可以同时有多个身份,权限跟着身份走,登录却只需要一次。
一个自然人,一个账号,多重身份
这是与「一个账号一套权限」最本质的差别:账号只负责回答「你是谁」,权限与归属跟着身份走。
自然人
一个人,只有一个账号
手机号 / 微信 / 企业微信 / 邮箱,登录一次
员工身份
办公协同、审批、管理后台
按岗位授权;离职只停用这一个身份
客户身份
商城、订单、售后服务
消费账号独立,不随任职变动
学员身份
课程、学习记录
机构归属跟着身份走
身份之间严格隔离:切了身份,菜单与权限跟着收窄,人在这个身份下看不到另一个身份的数据。
核心能力
从统一登录到存量迁移都在同一套里,不需要再拼第三个产品进去。
一次登录,通达全部系统
标准 OIDC 授权码流程(强制 PKCE),业务系统换一个 Guard 即可接入,业务代码基本不用改。登录方式覆盖手机号口令、短信、微信、企业微信与邮箱。
身份与账号分离
同一个人可以是员工、客户、学员;权限按身份授予,机构归属跟着身份走。离职只停用员工身份,不影响他在别处的账号。
为存量系统准备
成员 / 部门同步、冲突清单、只读目录端点、门户免登(一次性 code)都已定好契约。老 Laravel 系统换 Guard,ThinkPHP 走中间件,其余语言走标准 OIDC。
多租户与私有化
业务数据按租户隔离,隔离有越权专项测试并作为发布门禁;交付包支持 1Panel 编排与离线安装,客户内网可独立运行。租户可配自己的 Logo、主题色与登录页文案。
安全优先
成熟组件承载 OAuth / OIDC,协议不手写;令牌不入前端永久存储,敏感字段最小暴露,全操作留审计。
可审计可回溯
登录、身份切换、机构与权限变更全部落审计日志,支持按租户与操作人检索,可导出核对。
什么时候该上统一身份
下面四种情况只要中了一条,这套东西就能马上见效;一条都不中,多半还不必上。
多系统并存的集团与连锁
各系统的账号各自为政,员工换个系统就要重新登录一次,也没有一个地方能看到"这个人到底能进哪些系统"。
同一自然人多重身份的组织
一个人同时是员工、客户、学员,需要一键切换身份、按身份看到不同的应用,而不是被塞进一个账号里。
已有存量系统的客户
老系统都在跑,不想重写登录与权限,只想把它们接进同一套身份,一步步灰度切换。
数据不出内网的集团客户
要求私有化、自主可控,甚至要拿到核心引擎源码自己二次开发。
接入方式
接入顺序可以按系统的轻重缓急排,不必一次性把所有系统都切完。
- 01
登记接入方
一条命令登记客户端与回调白名单,幂等可重跑,密钥不回显。
- 02
接登录
Laravel 老系统换 Guard;前端用 JS SDK 跳转;其余语言走标准 OIDC。
- 03
同步成员
成员与机构从数据源推送或定时同步,幂等、可预演,冲突进人工队列逐条确认,不直接覆盖。
- 04
逐步灰度
先导一个系统,10% → 30% → 100% 切换,随时可回滚到本地登录,不用停服大爆炸。
交付形态
同一套代码,用配置切成单租户或多租户,不做两套分叉。
SaaS 托管
我司云端运行(多租户),开通即用,客户订阅使用。
适合: 中小客户、要快速开通
私有化 · 运维托管版
部署在客户环境(单租户),数据与密钥留在内网;我司部署并可选远程运维,客户不拿源码。
适合: 数据敏感、但没有开发团队
私有化 · 源码授权版
交付 Core 核心引擎源码,客户自运维、可二次开发。
适合: 集团客户、有 IT 团队、要自主可控
无论哪种形态, 平台运营层代码与 SaaS 运营数据永远不交付 —— 源码授权交付的是核心引擎,边界在签合同前就写清楚。
