5.11. 启用 reCAPTCHA


为了防止注册针对 bots,红帽构建的 Keycloak 与 Google reCAPTCHA (请参阅 第 5.11.1 节 “设置 Google reCAPTCHA”)和 reCAPTCHA Enterprise (请参阅 第 5.11.2 节 “设置 Google reCAPTCHA Enterprise”)集成。默认主题(register.ftl)支持 v2 (可见、基于复选框)和 v3 (基于内核的、不可见的) reCAPTCHA (请参阅 选择适当的 reCAPTCHA 键类型)。

5.11.1. 设置 Google reCAPTCHA

  1. 在浏览器中输入以下 URL:

    https://www.google.com/recaptcha/admin/create
    Copy to Clipboard Toggle word wrap
  2. 创建 reCAPTCHA,并在 Challenge v2 (可见)或基于 Score 的v3 (不可见)之间进行选择,以使您的 reCAPTCHA 站点密钥和 secret 之间进行选择。记下它们以备将来在此流程中使用。

    注意

    默认不支持 localhost 域。如果要继续为开发提供支持,您可以将它们添加到站点密钥支持的域中。

  3. 导航到红帽构建的 Keycloak 管理控制台。
  4. 点菜单中的 Authentication
  5. Flows 选项卡。
  6. 从列表中选择 Registration
  7. reCAPTCHA 要求设置为 Required。这可启用 reCAPTCHA。
  8. reCAPTCHA 行上的 齿轮图标

    reCAPTCHA config

    recaptcha config

    1. 输入从 Google reCAPTCHA 网站生成的 reCAPTCHA Site Key
    2. 输入 Google reCAPTCHA 网站生成的 reCAPTCHA Secret
    3. 根据您的站点密钥类型切换 reCAPTCHA v3 :对于基于分数的 reCAPTCHA (v3),对于质询 reCAPTCHA (v2),请关闭。
    4. (可选) Toggle Use recaptcha.net 使用 www.recatcha.net 而不是 www.google.com 域进行 cookies。如需更多信息,请参阅 reCAPTCHA faq
  9. 授权 Google 使用注册页面作为 iframe。

    注意

    在 Red Hat build of Keycloak 中,网站不能在 iframe 中包含登录页面对话框。这个限制是防止点jacking 攻击。您需要更改红帽构建的 Keycloak 中设置的默认 HTTP 响应标头。

    1. 单击菜单中的 Realm Settings
    2. Security Defenses 选项卡。
    3. X-Frame-Options 标头的字段中输入 https://www.google.com (如果您启用了 Use recaptcha.net),请在字段中输入 https//www.recaptcha.net
    4. Content-Security-Policy 标头的字段中输入 https://www.google.com (如果您启用了 Use recaptcha.net),请在字段中输入 https//www.recaptcha.net

5.11.2. 设置 Google reCAPTCHA Enterprise

  1. 在浏览器中输入以下 URL:

    https://developers.google.com/recaptcha/
    Copy to Clipboard Toggle word wrap
  2. 为"Website"平台创建一个密钥,然后选择所需的密钥类型。为 v3 reCAPTCHA 保留默认值(可见),或将 Use 复选框 保留 v2 reCAPTCHA (可见)。请注意,以后在此流程中使用的 site 键。

    注意

    默认情况下,localhost 可以正常工作。您不必指定域。

  3. 在 Google Cloud Project 上,进入 Credentials 并创建 API 密钥。

    注意

    为获得更高的安全性,请点击 edit api 键 并添加 API 限制,将密钥限制为只将密钥限制为 reCAPTCHA Enterprise API

  4. 导航到 Red Hat build of Keycloak Admin Console。
  5. 点菜单中的 Authentication
  6. Flows 选项卡。
  7. 复制"注册"流。
  8. 将新流绑定到 注册流
  9. 编辑新流:

    1. 删除 reCAPTCHA 步骤。
    2. 添加步骤 reCAPTCHA Enterprise 作为"注册表单"的子步骤(流的第一步)。
  10. reCAPTCHA Enterprise 要求设置为 Required
  11. reCAPTCHA Enterprise 行上的 齿轮图标

    reCAPTCHA Enterprise 配置

    recaptcha enterprise config

    1. 输入 Google Cloud 控制台项目的 Recaptcha 项目 ID
    2. 输入在流程开始时生成的 Recaptcha Site Key
    3. 输入在流程开始时生成的 Recaptcha API Key
    4. 根据您的站点密钥类型切换 reCAPTCHA v3 :对于基于分数的 reCAPTCHA (v3),对于质询 reCAPTCHA (v2),请关闭。
    5. (可选)自定义 Min。score Threshold,如您看到适合的那样。将其设置为 0.0 和 1.0 之间的最小分数,用户应在 reCAPTCHA 上实现注册。请参阅 解释分数
    6. (可选) Toggle Use recaptcha.net 使用 www.recatcha.net 而不是 www.google.com 域进行 cookies。如需更多信息,请参阅 reCAPTCHA faq
  12. 授权 Google 使用注册页面作为 iframe。具体步骤请查看 第 5.11.1 节 “设置 Google reCAPTCHA” 的最后步骤。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat