WAF 用の reCAPTCHA Enterprise と Google Cloud Armor の統合機能

WAF 用の reCAPTCHA Enterprise と Google Cloud Armor の統合により、reCAPTCHA 課題ページreCAPTCHA アクション トークンreCAPTCHA セッション トークンの機能が提供されます。 このドキュメントは、これらの機能を理解して、ユースケースに最適な機能を判断する際に役立ちます。

機能の比較

次の表に、reCAPTCHA 課題ページ、reCAPTCHA アクション トークン、reCAPTCHA セッション トークンの簡単な比較を示します。

比較カテゴリ reCAPTCHA 課題ページ reCAPTCHA アクション トークン reCAPTCHA セッション トークン
使用例 サイトに対するスパム行為が疑われ、bot を除外する必要がある場合は、reCAPTCHA 課題ページを使用します。

この方法では、ユーザーが CAPTCHA 課題を確認する必要があるため、ユーザーのアクティビティが中断されます。

reCAPTCHA アクション トークンを使用してユーザー アクションを保護します。 reCAPTCHA セッション トークンを使用して、サイトのドメインでユーザー セッション全体を保護します。
統合タイプ

統合では、Google Cloud Armor セキュリティ ポリシー ルールを構成する必要があります。

統合では、次のことを行う必要があります。

  • サイトの個々のページに reCAPTCHA JavaScript をインストールする。
  • アクション トークンを個々のリクエスト ヘッダーに添付する。
  • Google Cloud Armor セキュリティ ポリシー ルールを構成する。

統合では、次のことを行う必要があります。

  • サイトの個々のページに reCAPTCHA JavaScript をインストールする。
  • Google Cloud Armor セキュリティ ポリシー ルールを構成する。
検出の精度

このプロセスには、reCAPTCHA 課題ページへのリダイレクトが含まれますが、ページ固有のシグナルがすべて受信されない場合があります。そのため、bot の検出の精度が低くなる可能性があります。

最高

アクション トークンはユーザーのアクションを保護します。

セッション トークンは、サイトのドメインでのユーザー セッション全体を保護します。

サポートされている reCAPTCHA のバージョン reCAPTCHA 課題ページでは、最適化されたバージョンの reCAPTCHA を使用して、統合を最小限に抑えます。 reCAPTCHA Enterprise のスコアベースのサイトキーとチェックボックスのサイトキー reCAPTCHA Enterprise のスコアベースのサイトキー

reCAPTCHA 課題ページ

reCAPTCHA 課題ページ機能を使用して、受信リクエストを reCAPTCHA Enterprise にリダイレクトし、各リクエストが不正なものか正当なものかを判断します。

リダイレクトと可能性がある CAPTCHA 課題の適用により、ユーザーのアクティビティが中断されます。サイトに対するスパム行為が疑われる場合は、これを使用して bot を除外することをおすすめします。

エンドユーザー(ユーザー)が初めてサイトにアクセスしたときに、次のイベントが発生します。

  1. ユーザーのリクエストが WAF レイヤで reCAPTCHA Enterprise にリダイレクトされる。
  2. reCAPTCHA Enterprise が、reCAPTCHA JavaScript が埋め込まれた HTML ページで応答する。
  3. ページがレンダリングされると、reCAPTCHA Enterprise がユーザーの操作を評価する。必要に応じて、reCAPTCHA Enterprise が CAPTCHA 課題をユーザーに提供します。
  4. 評価の結果に応じて、reCAPTCHA Enterprise は次の処理を行います。

    1. ユーザー操作が評価に合格すると、reCAPTCHA Enterprise は除外 Cookie を発行します。ブラウザは、Cookie が期限切れになるまで、同じサイトに対するユーザーの後続のリクエストにこの除外 Cookie を添付します。デフォルトでは、除外 Cookie は 3 時間後に期限切れになります。
    2. ユーザーの操作が評価に合格しなかった場合、reCAPTCHA Enterprise は除外 Cookie を発行しません。
  5. reCAPTCHA Enterprise は、ユーザーが GET/HEAD 呼び出しを使用してウェブページにアクセスすると、除外 Cookie でウェブページを再読み込みします。ユーザーが POST/PUT 呼び出しを使用してウェブページにアクセスする場合、ユーザーはページの再読み込みリンクをクリックする必要があります。

  6. Google Cloud Armor は、有効な除外 Cookie を持つ再びリダイレクトされ、サイトへのアクセスを許可するリクエストを除外します。

次のシーケンス図は、reCAPTCHA 課題ページのワークフローを示しています。

reCAPTCHA アクション トークン

reCAPTCHA アクション トークンを使用して、ご購入手続きなどの重要なユーザー インタラクションを保護できます。

この機能では、reCAPTCHA Enterprise サイトキーをウェブページにインストールします。ユーザー インタラクションがある場合、reCAPTCHA Enterprise はアクション トークンと呼ばれる暗号化されたレスポンスをエンドユーザーのブラウザに送信します。ユーザー アクションを保護する必要がある場合は、このアクション トークンを事前定義されたリクエスト ヘッダーに添付します。Google Cloud Armor は、バックエンド アプリケーションの代わりにアクション トークン属性をデコードして検証します。バックエンド アプリケーションからトークンの評価を行う必要なしに、アクション トークンのさまざまな属性に基づいてセキュリティ ポリシー ルールを構成できます。

次のシーケンス図は、reCAPTCHA アクション トークンのワークフローを示しています。

reCAPTCHA アクション トークン属性

次の表に、reCAPTCHA アクション トークンの属性セットを示します。

属性名 データ型 説明
score float reCAPTCHA トークンからのスコア。有効なスコアの範囲は 0.0~1.0 です。 スコア 1.0 は、インタラクションのリスクが低く、正当である可能性が非常に高いことを示します。一方で 0.0 は、インタラクションのリスクが高く、不正行為の可能性があることを示します。詳細については、スコアの解釈をご覧ください。
captcha_status 文字列 reCAPTCHA トークンの CAPTCHA ステータス。次の 3 つのステータスがあります。
  • ユーザーを評価する際に課題が含まれていなかった。
  • 課題が含まれ、ユーザーが正しく解決した。
  • 課題が含まれ、ユーザーが解決に失敗した。
action_name 文字列 action_name は、grecaptcha.enterprise.execute() の呼び出し時にユーザー インタラクションのために指定したアクション パラメータです。詳細については、アクション名をご覧ください。

reCAPTCHA セッション トークン

サイトのドメインでユーザー セッション全体を保護する場合は、reCAPTCHA セッション トークンを使用できます。セッション トークンを使用すると、既存の reCAPTCHA Enterprise の評価を一定期間再利用できるため、特定のユーザーに対するそれ以上の評価が不要になり、reCAPTCHA Enterprise の負荷が軽減されます。

この機能では、評価後に reCAPTCHA JavaScript がエンドユーザーのブラウザにセッション トークンを Cookie として設定します。reCAPTCHA JavaScript がアクティブである限り、エンドユーザーのブラウザは Cookie を添付し、その Cookie を更新します。Google Cloud Armor はこの Cookie を検証し、セキュリティ ポリシー ルールに基づいてアクションを適用します。

reCAPTCHA Enterprise でエンドユーザーのブラウジング パターンを把握できるようにするには、サイトのすべてのウェブページで reCAPTCHA セッション トークンを使用することをおすすめします。

次のシーケンス図は、reCAPTCHA セッション トークンのワークフローを示しています。

reCAPTCHA セッション トークン属性

次の表に、reCAPTCHA セッション トークンの属性を示します。

属性名 データ型 説明
Score float reCAPTCHA トークンからのスコア。有効なスコアの範囲は 0.0~1.0 です。 スコア 1.0 は、インタラクションのリスクが低く、正当である可能性が非常に高いことを示します。一方で 0.0 は、インタラクションのリスクが高く、不正行為の可能性があることを示します。詳細については、スコアの解釈をご覧ください。

次のステップ

  • WAF 用 reCAPTCHA Enterprise と Google Cloud Armor の統合の機能を実装する方法を学習する。