KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

04 · 什么时候别用它 — keel 龙骨

前三章你已经会"跑起来"和"接进去"了。这一章收口到一件更重要的事: 什么时候不该用 SSO。

前三章你已经会"跑起来"和"接进去"了。这一章收口到一件更重要的事:
什么时候不该用 SSO。

先把手上的实验环境清掉——顺便这就是这一章要你敲的那条命令:

docker rm -f sso-kc

输出就是容器名,一行:

sso-kc

再确认它真的没了:

docker ps --filter name=sso-kc

预期:只剩表头一行,没有数据行。这就是"清干净了"的形状。

一、五类"别用它"的场景

一个技术用得对不对,往往不取决于你多会用它,而取决于你知不知道它的边界。

1. 你只有一个系统

SSO 消掉的是"同一个身份要在多个系统间对齐"这件事。如果你从头到尾只有一个系统,
它自己那张账号表就是唯一权威,压根没有"对齐"的问题——引入 SSO 只是给它加了一道
本不必要的跳转
。

判断句:有几个系统要共享同一套登录? 答案 ≤ 1,SSO 能给的收益接近零。

2. 纯内部工具,不值得维护一个 IdP

一个只有三五个同事用的后台,为了它专门维护一个 IdP——
你就多了一个要一直跑着的服务、一套要备份的用户数据、一个会挂的环节。
这种情况下,用最土的用户名密码,或者在反向代理那一层放个统一的 basic auth,已经够了。

3. 公司已经有企业 IdP 了

如果公司已经在用某个统一登录(AD、钉钉/飞书、Entra 之类),
正确动作是"把你的应用接进去",而不是在旁边再自己搭一个。
自建第二个的唯一结果是:又多了一套要同步的账号,多了一处会不一致的地方。

4. 不能接受外部依赖的关键系统

有些系统的可用性要求是"就算外部全挂,我也得能进"——比如机房的本地应急入口、
离线设备的管理台。把登录押在一个外部 IdP 上,等于把这个系统的可用性也绑了过去。
这类系统要能留一条本地入口,SSO 只作为常规路径。

5. 把 SSO 当成权限系统用

这是最隐蔽的一类:"我们上了 SSO,权限就统一管住了吧?"——并没有。
SSO 只给出"你是谁",谁登录进来看到哪几张表、能不能导出,是另一件事。
指望 SSO 顺手解决权限,最后会发现权限还散在各应用里,只是登录变统一了。

一条把它们串起来的线索

上面五条其实是同一句话的不同侧面:

SSO 的价值,来自两件事同时成立:① 有多个系统要共享同一个"你是谁";
② 你愿意、也承担得起,把"证明身份"这件事交给一个外部角色。

两个都成立才值;缺任何一个,收益就掉到负数——因为你换来的是额外的维护、额外的依赖。
所以拿到需求先问的不是"怎么接 SSO",而是这两句:"有几个系统?" 和 "这件事我能交给谁?"

二、一张速查表(判断时回来查)

你的情况 要不要引入 SSO 更合适的做法
只有 1 个系统 不要 让这个系统自己管账号
2–3 个内部小工具、就几个人用 通常不要 各自管,或在网关层统一 basic auth
公司已有统一登录 不要自建 把应用接进去(当 SP)
关键系统不能依赖外部 谨慎 保留本地应急入口,SSO 只作常规路径
想用它"统一管权限" 用错了地方 SSO 管认证,权限单独做

三、它不是什么

读完你能做什么

走到这里,这门课的目标就完成了:

下一步去哪

这门课到这里就结束了。它刻意不长——你已经知道它是什么、边界在哪,
剩下的交给需要的时候再学。

进入 keel 阅读