KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
课程导读 · SSO 基础课 — keel 龙骨
SSO 基础课:把单点登录跑起来 的参考信息:课程导读 · SSO 基础课
从"满屏名词分不清"到"自己跑起一个 IdP,并说得清它的边界"
你现在的起点
先花一分钟对一下。下面四条你都能说清,这门课可以跳过,直接去《SSO 应用课》:
- IdP 和 SP 分别指什么?
- 从登录页跳回你的应用时,地址栏里的
code是什么?能直接当 token 用吗? -p 8081:8080里,哪边是你自己的电脑、哪边是容器?- 什么情况下不该引入 SSO?
只要有一条答不上来,往下读。这门课不要求你会写代码,也不要求你搭过任何服务。
一条能走通的学习路径
它是什么 01 它到底解决了什么问题
↓
跑一个现成的 02 跑起第一个 IdP
↓
装自己的东西 03 把自己的应用接进去
↓
边界在哪 04 什么时候别用它
四章,每章一个能跑出来的结果。 不需要服务器,本机跑就行。
章节地图
| 章 | 关键问题 | 你会亲手跑出什么 |
|---|---|---|
| 01 它到底解决了什么问题 | "五个系统五套账号"到底坏在哪?SSO 的答案是什么? | 读出一份 IdP 公开的端点清单 |
| 02 跑起第一个 IdP | 一条 docker 命令里每一段在做什么?日志里哪行说明它活了? |
一个真实在跑的 IdP 和那句启动成功日志 |
| 03 把自己的应用接进去 | realm 和 client 分别是什么?跳回来时地址栏多了什么? | 建好的 realm + client,和一段真实回跳 URL |
| 04 什么时候别用它 | 哪五种情况不该上 SSO? | 一张判断速查表,和一个清干净的环境 |
本章会遇到的词
遇到不认识的词,回这张表查一句话就够;要更完整的来历,点对应的课程链接。
| 词 | 出现在 | 一句话 |
|---|---|---|
| IdP(身份提供者) | 01 | 统一做"证明你是谁"的那个角色,是一个真实在跑的服务 |
| SP(服务提供者) | 01 | 要接进来的那些系统;每个在 IdP 里登记一条记录 |
| 断言(assertion / token) | 01、03 | IdP 验明身份后交出的带签名文本,拿到方做的是验签 |
| 端点(endpoint) | 01、02 | 一个服务上不同的"窗口",每个用一条 URL 表示 |
| realm | 03 | IdP 里一个独立的"圈":自己的用户、客户端、配置;名字就在 URL 里 |
| client | 03 | 在 IdP 里为"一个应用"登记的一条记录 |
| redirect_uri | 03 | 登记时约好的"跳回来允许落到哪个地址" |
| code | 03 | 回跳时的一次性号码牌,不是 token,且只能用一次 |
| OIDC | 全课 | 本课用的这套"跳去登录、带一份带签名的凭证回来"的协议 |
| Keycloak | 02 | 本课用来当 IdP 的开源软件(26.8.1) |
你还会听到 SAML——另一套做同一件事的协议,企业里常见;本课不涉及它。
这门课怎么读
- 每一章的代码块,请真的跑一遍。 这门课知识量不大,但"跑过一次"和"读过一次"差别很大。
- 不要背命令。 第 04 章有一张速查表,用的时候回来查就行。
- 遇到不认识的词不要停下来查。 每个词第一次出现都会给一句话解释,或用上面那张表兜住。
前置要求
- 能用命令行执行一条命令(会敲回车就够了);
- 本机有一个能用的 Docker(
docker version里Client和Server两段都在); - 不需要会编程。 第 03 章的 REST 调用是照抄的,不要求你懂代码。
实验环境说明
- 命令是标准写法,Windows / macOS / Linux 通用;路径写法有差异的地方会单独说明。
- 正文里"跑起来会看到什么"的输出版块,环境是 Keycloak 26.8.1(dev 模式)、
用 Docker 跑在本机、宿主端口 8081 映射到容器 8080。 - 但数字必定不同:容器 id、令牌长度、启动耗时、
code/state都随环境变——
要读的是形状(有哪几个字段、哪一行表示成功)。