KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
课程导读 · SSO 概念课 — keel 龙骨
SSO 概念课:把应用课抛出的概念讲清楚 的参考信息:课程导读 · SSO 概念课
应用课抛出一个概念,这里把它讲清楚——它从哪来、是什么、长什么样
这门课为什么这么短
因为它的目的不是"把 SSO 讲透",而是把应用课里的一个概念讲到你推得下去。
AI 已经把大部分接入代码替你写好了。你不需要跟着再挖一遍协议细节,你需要的是:知道这个概念怎么产生的、是什么、解决什么问题、面对什么需求、具体长什么样。这五件事弄清楚,回头再看应用课里那些面向场景与取舍的判断,会顺得多——这也是这门课存在的唯一理由。
所以每一页都长成同一个样子,六件事 + 两处收口:
一、它为什么会出现 ← 需求 + 问题(带一个具体现场)
二、它是什么 ← 一句话定义 + 它不是什么
三、它长什么样 ← 真实形态:命令 / 配置 / 输出
四、它怎么工作 ← 一次完整的过程(短)
五、它会带出哪些概念 ← 衍生概念:各自一句 + 指向哪一页
六、回到应用课 ← 把应用课里的哪句结论变成可推导 + 一个判断
自测题 ← 两道,能口头答出就算过
这五件事之外的(生产边界、故障注入、排障)不在这里——那是应用课各章的内容,本课刻意不重复。
你现在的起点
这门课没有前置要求,可以直接读。但如果你是带着问题来的,先看哪一页:
| 你的处境 | 去读 |
|---|---|
| "IdP、SP、realm、client 这些词到底谁是谁" | 00 IdP 与 SP |
| "换了个地址访问 IdP 就说 issuer 不对,为什么" | 00 IdP 与 SP §三 |
| "JWT 中间那段我拿不到密钥也能读出来,正常吗" | 01 断言与令牌 |
| "为什么非得让浏览器跳一次,应用自己拿不到吗" | 02 重定向与回跳 |
"redirect_uri 不就是个地址,为什么改一个字就报错" |
02 重定向与回跳 |
"code 和 token 不是一个东西?为什么只能用一次" |
03 授权码与 PKCE |
| "PKCE 那个 verifier 到底是谁生成的、防住了谁" | 03 授权码与 PKCE |
| "退出了为什么另一个系统还登着" | 04 会话与单点登出 |
| "想先有个整体位置感" | 00 IdP 与 SP 起,五页顺读约 25 分钟 |
概念地图与"衍生概念"
概念分两种,这是本课唯一的分类:
| 概念 | 类型 | 一句话 | 对应应用课 |
|---|---|---|---|
| 00 IdP 与 SP | 主题概念 | 一个替所有应用验证身份的系统,加一群只接受它结论的应用 | 01 章 · 全景与选型 |
| 01 断言与令牌 | 衍生概念,服务于「IdP 与 SP」 | "IdP 说这个人是谁"的那句话,以及它的载体 | 03 章 · 令牌与校验 |
| 02 重定向与回跳 | 主题概念 | 让浏览器亲自跑一趟,把结论从 IdP 带回应用 | 02 章 · 授权码流与 PKCE |
| 03 授权码与 PKCE | 衍生概念,服务于「重定向与回跳」 | 一张经过浏览器、但什么也换不出的兑换凭据,外加一把只有应用有的锁 | 02 章 · 授权码流与 PKCE |
| 04 会话与单点登出 | 主题概念 | "已经登录过"这件事被记在两处,登出要把两处都清掉 | 04 章 · 会话与登出 |
衍生概念是为了理解某个主题概念而必须先弄懂的东西:不懂"断言",就说不清"应用凭什么相信 IdP 的话";不懂"授权码有两半",就说不清"为什么让浏览器带一次 code 是安全的"。每页的第五节会列出它带出的衍生概念,以及该去哪一页。
阅读方式
- 当成下钻入口:应用课读到卡住的那一句,点旁边的链接进来;读完顺着"回到应用课"跳回去。
- 当成最小地图:五页顺读,拿到这几个概念之间的位置关系。
- 不要当手册:这里没有配置清单。每一页要带走的只有最后那句"这一页改变了你的哪个判断"。