5.11. reCAPTCHA の有効化
ボットにより勝手に登録されないように、Red Hat build of Keycloak は Google reCAPTCHA (「Google reCAPTCHA のセットアップ」 を参照) および reCAPTCHA Enterprise (「Google reCAPTCHA Enterprise のセットアップ」 を参照) と統合されています。デフォルトのテーマ (register.ftl) は、v2 (表示、チェックボックスベース) と v3 (スコアベース、非表示) の両方の reCAPTCHA をサポートしています (Choose the appropriate reCAPTCHA key type を参照)。
5.11.1. Google reCAPTCHA のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
以下の URL をブラウザーに入力します。
https://www.google.com/recaptcha/admin/createreCAPTCHA を作成し、Challenge v2 (チェックボックスが表示される) または Score-based v3 (表示されない) を選択して、reCAPTCHA Site Key とシークレットを取得します。この手順で今後、このキーとシークレットを使用できるように書き留めます。
注記デフォルトでは、localhost ドメインはサポートされていません。開発で localhost ドメインのサポートが継続して必要な場合は、サイトキーのサポート対象ドメインリストに追加できます。
- Red Hat build of Keycloak 管理コンソールに移動します。
- メニューで Authentication をクリックします。
- Flows タブをクリックします。
- リストから Registration を選択します。
- reCAPTCHA の要件を Required に設定します。これにより、reCAPTCHA が有効になります。
reCAPTCHA 行の 歯車アイコン ⚙️ をクリックします。
reCAPTCHA 設定
- Google reCAPTCHA の Web サイトから生成された reCAPTCHA Site Key を入力します。
- Google reCAPTCHA の Web サイトから生成された reCAPTCHA Secret を入力します。
- Site Key タイプに応じて reCAPTCHA v3 を切り替えます。Score-based reCAPTCHA (v3) の場合はオン、Challenge reCAPTCHA (v2) の場合はオフにします。
-
(オプション) Cookie に
www.google.comドメインではなくwww.recaptcha.netを使用するには、Use recaptcha.net を切り替えます。詳細は、reCAPTCHA の FAQ を参照してください。
登録ページを iframe として使用するよう Google を認可します。
注記Red Hat build of Keycloak では、Web サイトの iframe にログインページのダイアログを含めることはできません。この制限は、クリック攻撃を防ぐことです。Red Hat build of 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/"Website" プラットフォームのキーを作成し、必要なキータイプを選択します。v3 reCAPTCHA (非表示) の場合はデフォルトのままにするか、v2 reCAPTCHA (表示) の場合は Use checkbox challenge を切り替えます。将来的にこの手順で使用するために、Site Key を書き留めておきます。
注記localhost はデフォルトで動作します。ドメインを指定する必要はありません。
Google Cloud プロジェクトで、Credentials に移動して API キーを作成します。
注記セキュリティーを強化するには、edit api key をクリックし、API 制限を追加して、キーを reCAPTCHA Enterprise API のみに制限します。
- Red Hat build of Keycloak 管理コンソールに移動します。
- メニューで Authentication をクリックします。
- Flows タブをクリックします。
- 「登録」フローを複製します。
- 新しいフローを Registration flow にバインドします。
新しいフローを編集します。
- reCAPTCHA ステップを削除します。
- "登録フォーム" (フローの最初のステップ) のサブステップとして、reCAPTCHA Enterprise ステップを追加します。
- reCAPTCHA Enterprise の要件を Required に設定します。
reCAPTCHA Enterprise 行の 歯車アイコン ⚙️ をクリックします。
reCAPTCHA エンタープライズ設定
- Google Cloud コンソールプロジェクトの Recaptcha プロジェクト ID を入力します。
- 手順の始めに生成された Recaptcha Site Key を入力します。
- 手順の始めに生成された Recaptcha API Key を入力します。
- Site Key タイプに応じて reCAPTCHA v3 を切り替えます。Score-based reCAPTCHA (v3) の場合はオン、Challenge reCAPTCHA (v2) の場合はオフにします。
- (オプション) Min. Score Threshold を適切な値にカスタマイズします。ユーザーが登録を許可されるために reCAPTCHA で達成する必要がある最小スコア (0.0 - 1.0) に設定します。interpret scores を参照してください。
-
(オプション) Cookie に
www.google.comドメインではなくwww.recaptcha.netを使用するには、Use recaptcha.net を切り替えます。詳細は、reCAPTCHA の FAQ を参照してください。
- 登録ページを iframe として使用するよう Google を認可します。詳細な手順は、「Google reCAPTCHA のセットアップ」 の最後の手順を参照してください。