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 复制链接链接已复制到粘贴板!
在浏览器中输入以下 URL:
https://www.google.com/recaptcha/admin/create
https://www.google.com/recaptcha/admin/create
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 reCAPTCHA,并在 Challenge v2 (可见)或基于 Score 的v3 (不可见)之间进行选择,以使您的 reCAPTCHA 站点密钥和 secret 之间进行选择。记下它们以备将来在此流程中使用。
注意默认不支持 localhost 域。如果要继续为开发提供支持,您可以将它们添加到站点密钥支持的域中。
- 导航到红帽构建的 Keycloak 管理控制台。
- 点菜单中的 Authentication。
- 点 Flows 选项卡。
- 从列表中选择 Registration。
- 将 reCAPTCHA 要求设置为 Required。这可启用 reCAPTCHA。
点 reCAPTCHA 行上的 齿轮图标。
reCAPTCHA config
- 输入从 Google reCAPTCHA 网站生成的 reCAPTCHA Site Key。
- 输入 Google reCAPTCHA 网站生成的 reCAPTCHA Secret。
- 根据您的站点密钥类型切换 reCAPTCHA v3 :对于基于分数的 reCAPTCHA (v3),对于质询 reCAPTCHA (v2),请关闭。
-
(可选) Toggle Use recaptcha.net 使用
www.recatcha.net
而不是www.google.com
域进行 cookies。如需更多信息,请参阅 reCAPTCHA faq。
授权 Google 使用注册页面作为 iframe。
注意在 Red Hat build of Keycloak 中,网站不能在 iframe 中包含登录页面对话框。这个限制是防止点jacking 攻击。您需要更改红帽构建的 Keycloak 中设置的默认 HTTP 响应标头。
- 单击菜单中的 Realm Settings。
- 点 Security Defenses 选项卡。
-
在 X-Frame-Options 标头的字段中输入
https://www.google.com
(如果您启用了 Use recaptcha.net),请在字段中输入https//www.recaptcha.net
。 -
在 Content-Security-Policy 标头的字段中输入
https://www.google.com
(如果您启用了 Use recaptcha.net),请在字段中输入https//www.recaptcha.net
。
5.11.2. 设置 Google reCAPTCHA Enterprise 复制链接链接已复制到粘贴板!
在浏览器中输入以下 URL:
https://developers.google.com/recaptcha/
https://developers.google.com/recaptcha/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为"Website"平台创建一个密钥,然后选择所需的密钥类型。为 v3 reCAPTCHA 保留默认值(可见),或将 Use 复选框 保留 v2 reCAPTCHA (可见)。请注意,以后在此流程中使用的 site 键。
注意默认情况下,localhost 可以正常工作。您不必指定域。
在 Google Cloud Project 上,进入 Credentials 并创建 API 密钥。
注意为获得更高的安全性,请点击 edit api 键 并添加 API 限制,将密钥限制为只将密钥限制为 reCAPTCHA Enterprise API。
- 导航到 Red Hat build of Keycloak Admin Console。
- 点菜单中的 Authentication。
- 点 Flows 选项卡。
- 复制"注册"流。
- 将新流绑定到 注册流。
编辑新流:
- 删除 reCAPTCHA 步骤。
- 添加步骤 reCAPTCHA Enterprise 作为"注册表单"的子步骤(流的第一步)。
- 将 reCAPTCHA Enterprise 要求设置为 Required。
点 reCAPTCHA Enterprise 行上的 齿轮图标。
reCAPTCHA Enterprise 配置
- 输入 Google Cloud 控制台项目的 Recaptcha 项目 ID。
- 输入在流程开始时生成的 Recaptcha Site Key。
- 输入在流程开始时生成的 Recaptcha API Key。
- 根据您的站点密钥类型切换 reCAPTCHA v3 :对于基于分数的 reCAPTCHA (v3),对于质询 reCAPTCHA (v2),请关闭。
- (可选)自定义 Min。score Threshold,如您看到适合的那样。将其设置为 0.0 和 1.0 之间的最小分数,用户应在 reCAPTCHA 上实现注册。请参阅 解释分数。
-
(可选) Toggle Use recaptcha.net 使用
www.recatcha.net
而不是www.google.com
域进行 cookies。如需更多信息,请参阅 reCAPTCHA faq。
- 授权 Google 使用注册页面作为 iframe。具体步骤请查看 第 5.11.1 节 “设置 Google reCAPTCHA” 的最后步骤。