-
buo4 技术教程组 用户
每个系统都做了一套注册登录。用户记不住三套密码,你要维护三套账号体系。想加个第三方登录,还得每个系统各接一遍。
Keycloak 是开源身份认证与访问管理(IAM)方案,思路是把登录、用户和权限从业务系统里抽出来统一做。

各做一套登录的代价
- 用户账号分散在不同系统,重复注册、重复找回密码
- 密码强度策略、验证码、找回流程每个系统各实现一遍
- 想接第三方登录,每个系统都得单独对接一次
- 权限模型各不相同,出了安全问题很难统一审计

Keycloak 提供什么
单点登录(SSO)。 登录一次,多个应用通用;支持 SAML、OIDC / OAuth 2.0 等标准协议。
用户联邦。 可以对接已有的 LDAP / Active Directory,不强制迁移存量账号。
集中用户管理。 注册、密码策略、找回密码、多因素认证(MFA)都在一处配置。
细粒度授权。 除认证之外,还能做基于角色和策略的授权管理。
身份中介。 把外部身份源(社交账号、企业身份)接入进来,业务系统只面对 Keycloak 一个入口。
生态成熟。 CNCF 项目,文档和客户端适配器齐全,主流语言都有现成的集成方式。
自建登录 vs Keycloak

| Keycloak | 各系统自实现 | |
|---|---|---|
| 多系统统一登录 | 天然支持 | 需自己打通 |
| 标准协议 | 内置 SAML / OIDC | 自己实现 |
| 对接 LDAP / AD | 内置 | 自己写 |
| 初期成本 | 要部署、要理解概念 | 写个登录页很快 |
"认证这事儿,做一次是成本,做三次就是债务。"
需要注意
概念门槛不低。 Realm、Client、Role、Scope 这套术语要先理解清楚,仓促上手很容易配错权限。
它会变成核心依赖。 一旦所有系统都依赖它,可用性要求就非常高,必须做高可用部署和数据备份。
升级留意 breaking change。 大版本之间配置和主题可能有不兼容变更,升级前务必看发行说明、先在测试环境验证。
对"系统超过两个、还在各做各的登录"的情况,早点把认证收敛到一处,后面能省下大量重复劳动。