このドキュメントは、Google Cloud Armor 用 reCAPTCHA の機能を理解し、ユースケースに最適な機能を判断する際に役立ちます。
reCAPTCHA には、Google Cloud Armor との統合に使用できる次の機能があります。
機能の概要
Google Cloud Armor 統合用の reCAPTCHA は、アクション トークン、セッション トークン、チャレンジ ページ、reCAPTCHA express をサポートしています
1 つのアプリケーションで 1 つ以上の Google Cloud Armor 用 reCAPTCHA 機能を使用できます。たとえば、すべてのページにセッション トークンを適用するように選択でき、セッション トークンのスコアに基づいて、不審なリクエストを reCAPTCHA 課題ページにリダイレクトできます。また、ご購入手続きなどの重要なアクションにアクション トークンを使用できます。詳細については、例をご覧ください。
次の表に、Google Cloud Armor で使用可能な reCAPTCHA の機能の簡単な比較を示します。
比較カテゴリ | reCAPTCHA アクション トークン | reCAPTCHA セッション トークン | reCAPTCHA 課題ページ | reCAPTCHA express |
---|---|---|---|---|
ユースケース | ログインや投稿へのコメントなどのユーザー アクションを保護するために使用します。 | サイトのドメインでのユーザー セッション全体を保護するために使用します。 | サイトに対するスパム行為が疑われ、bot を除外する必要がある場合に使用します。 この方法では、ユーザーが CAPTCHA チャレンジを確認する必要があるため、ユーザーのアクティビティが中断されます。 |
環境が reCAPTCHA JavaScript またはモバイル SDK の統合をサポートしていない場合は、reCAPTCHA express を使用します。 |
対応プラットフォーム | ウェブサイトとモバイルアプリ | ウェブサイト | ウェブサイト | すべての HTTP リクエスト。 API、ウェブサイト、モバイルアプリ、テレビやゲーム機などの IoT デバイス |
クライアント統合の作業量 | 中
クライアントサイドの手動統合。 |
中
WAF で reCAPTCHA JavaScript を手動でインストールするか、挿入してインストールします。 |
低
セキュリティ ポリシーによってトリガーされたインタースティシャル。 |
低
クライアント統合はありません。 |
検出精度 | 最高
クライアント、サーバー、アクション固有のシグナルを使用できます。 |
高
クライアントとサーバー固有のシグナルを使用できます。 |
中
クライアントとサーバー固有のシグナルを使用できます。クライアント シグナルはインタースティシャル ページでのみ使用できます。 |
低
サーバーサイドのシグナルのみを使用できます。 |
サポートされている reCAPTCHA のバージョン | reCAPTCHA のスコアベース キーとチェックボックス キー | reCAPTCHA スコアベース キー | インタースティシャル ページに埋め込まれた reCAPTCHA のチャレンジベースのキー | reCAPTCHA express キー |
reCAPTCHA アクション トークン
reCAPTCHA アクション トークンを使用して、ウェブページやモバイルアプリでのご購入手続きなどの重要なユーザー インタラクションを保護できます。
reCAPTCHA アクション トークンのワークフローは、次の手順で構成されます。
- エンドユーザーが reCAPTCHA で保護されたアクションをトリガーすると、ウェブページまたはモバイルアプリは、分析のためにブラウザで収集したシグナルを reCAPTCHA に送信します。
- reCAPTCHA がアクション トークンをウェブページまたはモバイルアプリに送信します。
- このアクション トークンを、保護するリクエストのヘッダーに添付します。
- エンドユーザーがアクション トークンを使用してアクセスをリクエストすると、Google Cloud Armor はバックエンド アプリケーションではなく、アクション トークンの属性をデコードして検証します。
- Google Cloud Armor は、構成済みのセキュリティ ポリシー ルールに基づいてアクションを適用します。
次のシーケンス図は、ウェブサイト用の reCAPTCHA アクション トークンのワークフローを示しています。
次のシーケンス図は、モバイルアプリ用の reCAPTCHA アクション トークンのワークフローを示しています。
reCAPTCHA セッション トークン
サイトのドメインでユーザー セッション全体を保護する場合は、reCAPTCHA セッション トークンを使用できます。セッション トークンを使用すると、既存の reCAPTCHA 評価を一定期間再利用できるため、特定のユーザーに対するそれ以上の評価が不要になり、ユーザー側の抵抗と必要な reCAPTCHA 呼び出しの総数が減少します。
reCAPTCHA がエンドユーザーのブラウジング パターンを学習できるようにするには、サイトのすべてのウェブページで reCAPTCHA セッション トークンを使用することをおすすめします。
reCAPTCHA セッション トークンのワークフローは次の手順で構成されます。
- ブラウザは reCAPTCHA から reCAPTCHA JavaScript を読み込みます。
- reCAPTCHA JavaScript は、評価後にセッション トークンをエンドユーザーのブラウザの Cookie として設定します。
- エンドユーザーのブラウザは Cookie を保存し、reCAPTCHA JavaScript はアクティブである限り 30 分ごとに Cookie を更新します。
- ユーザーが Cookie を使用してアクセスをリクエストすると、Google Cloud Armor がこの Cookie を検証し、セキュリティ ポリシー ルールに基づいてアクションを適用します。
次のシーケンス図は、reCAPTCHA セッション トークンのワークフローを示しています。
reCAPTCHA 課題ページ
reCAPTCHA による確認ページ機能を使用して、受信リクエストを reCAPTCHA にリダイレクトし、各リクエストが不正なものか正当なものかを判断します。
リダイレクトと可能性がある CAPTCHA 課題の適用により、ユーザーのアクティビティが中断されます。サイトに対するスパム行為が疑われる場合は、これを使用して bot を除外することをおすすめします。
エンドユーザー(ユーザー)が初めてサイトにアクセスしたときに、次のイベントが発生します。
- Google Cloud Armor レイヤで、ユーザーのリクエストが reCAPTCHA チャレンジ ページにリダイレクトされます。
- reCAPTCHA が、reCAPTCHA JavaScript が埋め込まれた HTML ページで応答します。
- 確認ページがレンダリングされると、reCAPTCHA がユーザー インタラクションを評価します。必要に応じて、reCAPTCHA が CAPTCHA による確認をユーザーに提供します。
評価の結果に応じて、reCAPTCHA は次の処理を行います。
- ユーザー操作が評価に合格すると、reCAPTCHA は除外 Cookie を発行します。ブラウザは、Cookie が期限切れになるまで、同じサイトに対するユーザーの後続のリクエストにこの除外 Cookie を添付します。デフォルトでは、除外 Cookie は 3 時間後に期限切れになります。
- ユーザーの操作が評価に合格しなかった場合、reCAPTCHA は除外 Cookie を発行しません。
reCAPTCHA は、ユーザーが GET/HEAD 呼び出しを使用してウェブページにアクセスすると、除外 Cookie でウェブページを再読み込みします。ユーザーが POST/PUT 呼び出しを使用してウェブページにアクセスする場合、ユーザーはページの再読み込みリンクをクリックする必要があります。
Google Cloud Armor は、有効な除外 Cookie を持つリクエストが再びリダイレクトされるのを除外し、サイトへのアクセスを許可します。
次のシーケンス図は、reCAPTCHA 課題ページのワークフローを示しています。
次のステップ
- Cloud Armor のトークン属性について学習する。
- ウェブサイトで reCAPTCHA を Cloud Armor と統合する。
- モバイルアプリで reCAPTCHA を Cloud Armor と統合する。