Keycloak 自托管:开源身份认证,"完全免费"的另一半你得自己扛

壹贰云测评 · 壹贰线报 | 核实时点:2026 年 10 月 | 作者:壹贰编辑部

主标题文案:Keycloak 自托管全拆解 副标题文案:Apache 2.0 真开源 · 无 MAU 上限 · 但"免费"不等于"零成本" 封面小字:壹贰线报 · 官方文档 + 最新安全公告核实


一、为什么把 Keycloak 单独拎出来说

过去几期壹贰线报,我们拆解过 Auth0、Clerk、Supabase Auth、Firebase Auth 这几款"身份即服务"——它们的共同点是:都带免费额度、但 MAU 一到就收费,而且国内社交接入普遍不太友好。

这一期来聊一款走"完全反向路线"的产品:Keycloak,自托管,开源,Apache 2.0 许可证。

它的逻辑很直接——软件不要钱,没有 MAU 上限,没有隐藏付费墙,所有企业级能力全开。但"软件免费"和"上线免成本"是两件事:服务器、数据库、HTTPS、备份、高可用、升级补丁、安全漏洞响应……这些全都得你自己扛。

这篇就把 Keycloak 自托管真正"免费"的部分、你要自己扛的部分、以及最近必须知道的几个高危补丁,一次讲清。


二、你给的信息基本对,但有 3 处必须补正

你给的素材——SAML 2.0、OIDC、OAuth 2.0、SSO、LDAP/AD 用户联合——这些都是真的,而且全部免费开放。但下面这几点必须补上,否则上线会踩坑:

✅ 真·完全免费(Apache 2.0,没有任何功能付费墙)

  • 无 MAU 上限、无用户数限制、无 API 调用额度——跑 100 个用户和跑 100 万用户,许可证层面不收一分钱;

  • 协议全栈:OpenID Connect(默认)、OAuth 2.0、SAML 2.0 全部免费内置,FAPI 2 合规、DPoP 令牌绑定(26.4 起)也是免费的;

  • 企业级认证因子:TOTP/OTP、WebAuthn 硬件密钥、Passkeys 无密码登录(26.4 起内置原生 UI)全部免费;

  • 用户联合(User Federation):LDAP、Active Directory 原生支持,权限、角色、属性映射全免费;

  • 身份代理(Identity Brokering):Google、GitHub、Facebook、Apple、Twitter/X、LinkedIn、Microsoft 等标准 OIDC/SAML IdP 全部可接,不限制数量;

  • 多租户(Organizations):26.x 新增的组织/多租户特性免费开放;

  • 主题定制 + SPI 扩展:登录页 UI、认证流程、自定义身份源、自定义事件监听器……全部开放,写一个 JAR 扔到 providers 目录就能扩展。

⚠️ 需要更正/补充的 3 个点

1. "自托管完全免费"——软件免费,运维不免费

这是开源 IAM 最容易被新手误解的地方。Keycloak 不会给你服务器、不会给你数据库、不会帮你打补丁。你需要自己解决:

  • 服务器:至少 2 核 4GB 起步(官方基准:1 vCPU ≈ 每秒 15 次密码登录,每 Pod 基础内存约 1250MB),生产环境建议 4 核 8GB 起步 + PostgreSQL;

  • 数据库:开发模式用嵌入式 H2,重启丢数据,绝不能上生产;生产推荐 PostgreSQL,MySQL/MariaDB 从 22 版本起官方已不再维护,强行用会有集群一致性问题;

  • TLS 证书 + HTTPS:生产必须 HTTPS,证书自己搞(Let's Encrypt 免费但需自动续签);

  • 备份、监控、日志、高可用:集群模式需要 Infinispan 做会话复制,跨可用区部署要自己处理。

2. 微信/企业微信/钉钉 —— 官方不原生支持

Keycloak 官方内置的社交登录列表里没有微信、企业微信、钉钉、支付宝、抖音等国内身份源。要接微信/企业微信,需要用社区贡献的 SPI 插件(如 keycloak-services-social-wechatwork、keycloak-social-wechat 等),这些插件:

  • 不是官方维护,Keycloak 跨大版本升级时可能不兼容;

  • 需要自己打 JAR、扔到 providers 目录、改 Dockerfile;

  • 企业微信相对容易(基于 OIDC 通用配置即可对接),微信公众号/小程序登录要处理 unionid/openid 映射逻辑更复杂。

3. 社区版没有 SLA、没有工单支持

  • 社区 Keycloak:出问题只能查文档、翻 GitHub Issues、问社区 Slack/GitHub Discussions,没有任何响应时间承诺;

  • Red Hat build of Keycloak(RHBK):Red Hat 官方支持版,基于社区版做过稳定性/兼容性测试,走 Red Hat 订阅付费,带 SLA、长期维护分支、勘误补丁;原来的 Red Hat SSO 7.6 是最后一代旧产品线,已经被 RHBK 取代;

  • 如果你的业务对认证可用性要求是 4 个 9(99.99%),要么买 RHBK 订阅,要么自己团队具备 24/7 运维能力。


三、你必须知道的近期安全动态

这一条非常重要——Keycloak 过去两个月连续出了几次高危安全补丁,线上跑着 Keycloak 的朋友建议立刻检查版本。

🔴 CVE-2026-18963(CVSS 9.1 Critical)

  • 影响范围:社区版 26.0.0 – 26.7.1;RHBK 26.4.0–26.4.14、26.6.0–26.6.5;

  • 漏洞原理:"忘记密码"流程存在状态校验绕过,未认证攻击者仅需 6–8 个 HTTP 请求、无需点击邮件链接,就能重置任意账号(含管理员)的密码,实现账户接管;

  • 修复版本:社区版已在 26.7.2 修复,8 月 19 日发布。

🔴 Keycloak 26.8.1(2026 年 10 月 13 日发布)

这是一个紧急安全补丁版,一次性修复约 20 个 CVE(含 mTLS 绕过、权限提升、任意登录、路径穿越、2FA 绕过、OIDC Broker 未签名登出 token 接受等),覆盖 OIDC、SAML、Identity Brokering、细粒度权限(FGAP)、X.509 与 Kerberos 认证等核心模块,官方建议立即升级。

⚠️ 一句话提醒:如果你的 Keycloak 实例版本号还在 26.7.x 以下、暴露在公网,这篇文章看完就去升级到 26.8.1。


四、免费版权益清单(社区 Keycloak)

能力

社区 Keycloak(免费)

备注

MAU / 用户数

无上限

许可证层面不限制

SSO 单点登录

✅ 免费

OIDC、SAML 均支持

OAuth 2.0 / OIDC

✅ 免费

默认协议,全栈支持

SAML 2.0

✅ 免费

传统企业系统对接

LDAP / Active Directory 用户联合

✅ 免费

原生支持,属性/角色映射

邮箱密码登录

✅ 免费

—

Magic Link 无密码

✅ 免费(需配 SMTP)

邮件服务器自行配置

社交登录(Google/GitHub/Facebook/Apple 等)

✅ 免费

数量不限

微信/企业微信/钉钉/支付宝

❌ 需第三方 SPI 插件

社区插件,非官方维护

TOTP / OTP 多因素

✅ 免费

含 Authenticator App

WebAuthn / 硬件密钥

✅ 免费

YubiKey 等 FIDO2 key

Passkeys 无密码登录

✅ 免费(26.4+)

原生 UI 内置

多租户 / Organizations

✅ 免费(26.x)

B2B 场景支持

RBAC / ABAC 细粒度授权

✅ 免费

含细粒度 Admin 权限

FAPI 2 / DPoP 合规

✅ 免费

金融级安全标准

主题定制 / 登录页白标

✅ 免费

FreeMarker 模板全开放

SPI 扩展点

✅ 免费

几乎所有功能可扩展

SAML/OIDC 企业 SSO(IdP/SP)

✅ 免费

双向都支持

SCIM 用户同步

✅ 支持

需启用对应 feature

官方技术支持 / SLA

❌

仅社区支持

商业订阅 / 长期维护分支

❌

需 Red Hat build of Keycloak


五、上线成本估算("免费"到底要花多少钱)

Keycloak 的真实成本取决于你的规模和团队能力,这里给一个常用参考:

规模

推荐配置

典型月成本(云服务器)

开发/个人项目

2C4G 单节点 + Docker + PostgreSQL(同机)

约 ¥80–¥150(轻量云)

中小企业内部 SSO(500–5000 员工)

4C8G 单/双节点 + 独立 PostgreSQL

约 ¥300–¥800

面向 C 端中型应用(1万–10万 DAU)

4C8G × 2–3 节点集群 + PostgreSQL 主从 + 负载均衡

约 ¥1500–¥5000

大规模生产(百万级用户)

多节点集群 + 数据库高可用 + CDN/WAF + 监控告警

视业务规模

关键结论:当 MAU 在几千到几万级别时,Keycloak 的总拥有成本(TCO)通常比按用户付费的 SaaS(Auth0 Essentials $35/月起、Pro $240/月起、Clerk Pro $25/月起)要低;但当团队没有运维 Java 应用经验时,隐性成本会快速放大——这时候选 SaaS 反而是更省钱的选择。


六、7 步快速上手(生产部署)

  1. 准备服务器:至少 2C4G(开发)/4C8G(生产),Linux x86_64,装 Docker 或 OpenJDK 21/25;

  2. 准备 PostgreSQL 数据库:生产不要用 H2,创建独立数据库、专用账号,开启备份;

  3. 拉取官方镜像:quay.io/keycloak/keycloak:26.8.1(务必用最新补丁版);

  4. 配置 HTTPS:生产必须启用 TLS(推荐在 Nginx/Ingress 做 TLS 卸载,Keycloak 设 proxy-headers=xforwarded,注意 proxy=edge 已弃用);

  5. 配置 hostname:必须显式设置 KC_HOSTNAME(对应对外域名),这是 token issuer 字段的来源,配错所有 token 会失效;

  6. 构建并启动:先 kc.sh build --db=postgres 做一次优化构建,再 kc.sh start --optimized 启动,不要直接用 start-dev 上生产;

  7. 创建 Realm、Client、用户:默认只有一个 master 管理域,业务要用必须新建 Realm;开 MFA/Passkeys、开社交登录、配 SMTP 发邮件。

快速体验命令(仅开发环境): docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:26.8.1 start-dev启动后访问 http://localhost:8080,管理员账号密码都是 admin,千万不要用这个配置去线上。


七、适合 / 不适合哪些场景

✅ 适合选 Keycloak

  • 企业内部系统、研发工具统一 SSO(对接 GitLab、Jenkins、ArgoCD、Grafana 等);

  • 对数据主权有强要求(必须把用户数据留在自己服务器、符合等保/合规要求);

  • 有 Java/运维团队、能自己扛升级和补丁;

  • 用户量到了 SaaS 按人头计费太贵的量级(几万 MAU 以上);

  • 要深度定制认证流程、与内部 LDAP/AD 深度打通;

  • 预算有限但能投入人力,长期 TCO 划算。

❌ 不太适合选 Keycloak

  • 独立开发者、小团队快速上线 MVP(折腾 Keycloak 一周不如直接用 Clerk/Supabase Auth 半天搞定);

  • 纯国内 ToC 应用要微信/钉钉/支付宝一键登录(要自己搞插件+维护版本兼容);

  • 没有运维/Java 经验、出问题没人能查日志排查;

  • 不愿意承担打补丁、升级、安全响应责任(2026 年已经出过好几次 Critical CVE,跟不及时会被打);

  • 想要"开箱即用 + 官方工单 SLA"——这种场景直接上 Red Hat build of Keycloak 或选 SaaS。


八、配套物料

🎨 头图封面文案

  • 主标题:Keycloak 自托管全拆解

  • 副标题:Apache 2.0 真开源 · 无 MAU 上限 · 但"免费"的另一半得自己扛

  • 小字角标:壹贰线报 · 官方文档 + 最新安全公告核实 · 2026.10

💬 文末互动话题

🔍 本期互动

  1. 你公司内部 SSO 用的是什么?Keycloak / Authing / MaxKey / JumpServer / 还是自己写的?

  2. 用 Keycloak 做过国内系统的同学,微信/企业微信登录你们是用第三方插件还是自己写 SPI?

  3. 26.8.1 这批 CVE 修复发布后,你的 Keycloak 已经升级了吗?还有多少实例停留在 26.7 以下?


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。