Keycloak 集成

为 Keycloak 流程添加 CAPTCHA 验证

为 Keycloak 浏览器登录、自助注册和重置密码页面提供服务端校验的人机挑战。单个 provider JAR,无需写代码。

Keycloak 26+ · Java 17 服务端签发、一次性 token 开源,单个 JAR
/admin/master/console/#/realm/authentication
Captchala Username Password Form
cl_pub_a8f3…29c1
••••••••••••••••
RequirementREQUIRED

为什么在 Keycloak 上用 CaptchaLa

在机器人最先攻击的页面上进行服务端校验。

隐私优先

不引入第三方追踪像素与广告信标,用户不被画像,开箱即原生符合 GDPR、CCPA 与 PIPL。

服务端防重放

Keycloak 在渲染时签发一次性 token,并用 App Secret 在服务端完成校验。已解过的 token 无法复用或跨表单共享。

即插即用,无需写代码

将单个 provider JAR 放入 providers/,运行 kc.sh build,在流程中添加执行步骤并粘贴两个密钥即可。密钥永远不会到达浏览器。

可保护的范围

在认证设置中独立添加每个流程。

浏览器登录
自助注册
重置密码

三步接入

部署 provider,然后接入流程。

  1. 1

    部署 JAR 包

    将 keycloak-captchala.jar 复制到 /opt/keycloak/providers/,运行 kc.sh build 并重启。将登录主题设置为 'captchala'。

  2. 2

    粘贴应用 Key 与应用密钥

    在 captcha.la 注册账号,复制 App Key 和 App Secret,粘贴到 Captchala 执行步骤的配置项(齿轮图标)中。

  3. 3

    选择要保护的流程

    将 Captchala 步骤添加到浏览器登录、注册和/或重置凭据流程中——登录、注册、重置密码,完成。

常见问题

Keycloak 插件免费吗?

是的,插件免费且开源。CaptchaLa 免费套餐包含每月 10,000 次验证;仅在需要更高用量时才需要付费。

支持哪些 Keycloak 版本?

Keycloak 26+ Quarkus 发行版,基于 26.5.6 与 Java 17 构建。将 JAR 放入 providers/,运行 kc.sh build 后重启即可。

可以保护哪些页面?

浏览器登录、自助注册和重置密码。每个流程独立接入,可根据需要保护其中一个、两个或全部三个。

App Secret 会暴露给浏览器吗?

不会。密钥以脱敏形式存储,仅在 Keycloak 向 CaptchaLa API 发起请求时通过 X-App-Secret 请求头传输,不会出现在任何页面、模板或日志中。

CaptchaLa API 不可达时会怎样?

默认情况下插件会失败关闭,提交将被拒绝。可在任意执行步骤上切换为失败放行,适合灰度上线。

保护你的 Keycloak Realm

免费开始——每月 10,000 次验证,无需信用卡。

免费开始