ウェブサイト用に Google Cloud Armor を統合する

このドキュメントでは、ウェブサイトで Cloud Armor 用 reCAPTCHA を統合する方法について説明します。

統合を完了するには、Cloud Armor 用 reCAPTCHA の 1 つ以上の機能を実装し、Cloud Armor セキュリティ ポリシーを構成する必要があります。

始める前に

  1. reCAPTCHA Enterprise API を有効にします。

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. ウェブサイトを保護するために Cloud Armor 用 reCAPTCHA の機能を実装する方法を計画します。

    1. ユースケースに最も適した WAF 機能を 1 つ以上選択します。
    2. 保護するページと、そのページで実装する Cloud Armor 機能のタイプを特定します。

Cloud Armor 用 reCAPTCHA の機能を実装する

要件に応じて、1 つのアプリケーションで Cloud Armor 用 reCAPTCHA の 1 つ以上の機能を使用できます。

1 つ以上の機能を使用する場合は、これらの機能ごとに reCAPTCHA キーを作成し、アプリケーションで使用する必要があります。たとえば、reCAPTCHA アクション トークンと reCAPTCHA による確認ページを使用する場合は、アクション トークンキーと確認ページキーを作成してアプリケーションで使用する必要があります。

reCAPTCHA アクション トークンを実装する

アクション トークンを生成するには、reCAPTCHA をウェブページで実行する必要があります。checkout などのユーザー アクションを保護する必要がある場合、reCAPTCHA がアクション トークンを生成したら、事前定義されたリクエスト ヘッダーにアクション トークンを添付します。デフォルトでは、アクション トークンは 30 分間有効ですが、トラフィックによって異なる場合があります。Cloud Armor がトークン属性を評価できるように、トークンが期限切れになる前にアクション トークンを事前定義されたリクエスト ヘッダーに添付する必要があります。

reCAPTCHA アクション トークンを実装するには、次の手順を実行します。

  1. ウェブサイトのアクション トークンキーを作成します。 <0x0A

    Cloud コンソール

    1. Google Cloud コンソールで、[reCAPTCHA] ページに移動します。

      [reCAPTCHA] に移動

    2. ページの上部にあるプロジェクト セレクタにリソース名が表示されていることを確認します。

      プロジェクトの名前が表示されない場合は、リソース セレクタをクリックしてプロジェクトを選択します。

    3. [鍵を作成] をクリックします。
    4. [表示名] フィールドに、キーの表示名を入力します。
    5. WAF 用 reCAPTCHA キーを作成するプラットフォームに応じて、適切なアクションを実行します。
      1. [アプリケーションの種類] で [ウェブ] を選択します。

        [ドメインリスト] セクションが表示されます。

      2. ドメインとサブドメインの reCAPTCHA キーを保護するには、[ドメインの所有権の証明を無効にする] トグルがオフになっていることを確認します。

        サイトの制限はないため、ドメインの所有権の証明の無効化はセキュリティ リスクとなります。したがって、reCAPTCHA キーは誰でもアクセスして使用できます。

      3. お使いのウェブサイトのドメイン名を入力してください。

        1. [ドメインリスト] セクションで、[ドメインを追加] をクリックします。
        2. [ドメイン] フィールドにドメインの名前を入力します。
        3. 省略可: ドメインを追加するには、[ドメインを追加] をクリックし、[ドメイン] フィールドに別のドメインの名前を入力します。最大 250 個のドメインを追加できます。

          ウェブサイトの場合、reCAPTCHA キーは、指定したドメインとサブドメインに固有のものです。複数のドメインからウェブサイトを提供する場合は、複数のドメインを指定できます。あるドメイン(たとえば examplepetstore.com)を指定すると、そのサブドメイン(たとえば subdomain.examplepetstore.com)を指定する必要はありません。

      4. [追加設定] で、[このキーをウェブ アプリケーション ファイアウォール(WAF)にデプロイしますか?] 切り替えをオンにします。
      5. [機能] オプションから [アクション] を選択します。

      6. 省略可: [チャレンジを使用する] 切り替えをオンにします。

      7. [鍵を作成] をクリックします。
      8. 新しく作成された鍵は、[reCAPTCHA のキー] ページにリストされています。

    gcloud

    reCAPTCHA キーを作成するには、gcloud recaptcha keys create コマンドを使用します。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • INTEGRATION_TYPE: 統合の種類 score または checkbox を指定します。
    • DISPLAY_NAME: キーの名前。通常はサイトの名前です。
    • DOMAIN_NAME: キーの使用を許可されたウェブサイトのドメインまたはサブドメイン。

      複数のドメインをカンマ区切りのリストとして指定します。 省略可: --allow-all-domains を指定して、ドメインの所有権の証明を無効にします。

      サイトの制限はないため、ドメインの所有権の証明の無効化はセキュリティ リスクとなります。したがって、reCAPTCHA キーは誰でもアクセスして使用できます。

    • WAF_FEATURE: WAF 機能の名前。 action-token を実行します。
    • WAF_SERVICE: WAF サービス プロバイダの名前。 Cloud Armor に CA を指定します。

    gcloud recaptcha keys create コマンドを実行します。

    Linux、macOS、Cloud Shell

    gcloud recaptcha keys create \
    --web \
    --display-name=DISPLAY_NAME  \
    --integration-type=INTEGRATION_TYPE \
    --domains=DOMAIN_NAME \
    --waf-feature=WAF_FEATURE \
    --waf-service=WAF_SERVICE

    Windows(PowerShell)

    gcloud recaptcha keys create `
    --web `
    --display-name=DISPLAY_NAME  `
    --integration-type=INTEGRATION_TYPE `
    --domains=DOMAIN_NAME `
    --waf-feature=WAF_FEATURE `
    --waf-service=WAF_SERVICE

    Windows(cmd.exe)

    gcloud recaptcha keys create ^
    --web ^
    --display-name=DISPLAY_NAME  ^
    --integration-type=INTEGRATION_TYPE ^
    --domains=DOMAIN_NAME ^
    --waf-feature=WAF_FEATURE ^
    --waf-service=WAF_SERVICE

    レスポンスには、新しく作成された reCAPTCHA キーが含まれます。

    REST

    キーの種類と統合タイプに関する API リファレンス情報については、統合タイプをご覧ください。

    リクエストのデータを使用する前に、次のように置き換えます。

    • INTEGRATION_TYPE: 統合の種類 score または checkbox を指定します。
    • DISPLAY_NAME: キーの名前。通常はサイトの名前です。
    • DOMAIN_NAME: キーの使用を許可されたウェブサイトのドメインまたはサブドメイン。

      複数のドメインをカンマ区切りのリストとして指定します。 省略可: --allow-all-domains を指定して、ドメインの所有権の証明を無効にします。

      サイトの制限はないため、ドメインの所有権の証明の無効化はセキュリティ リスクとなります。したがって、reCAPTCHA キーは誰でもアクセスして使用できます。

    • WAF_FEATURE: WAF 機能の名前。 action-token を実行します。
    • WAF_SERVICE: WAF サービス プロバイダの名前。 Cloud Armor に CA を指定します。
    • DEFAULT_SCORE_THRESHOLD: ポリシーベースのチャレンジキーの場合、カスタム スコアしきい値が定義されていないときに、キーのユニバーサル チャレンジしきい値を定義します。これはプレビュー版です。
    • ACTION_SCORE_THRESHOLDS: ポリシーベースのチャレンジ キーの場合、アクションと対応するしきい値スコア(0.0 ~ 1.0)を指定します。例: login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'これはプレビュー版です。

    HTTP メソッドと URL:

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    リクエストの本文(JSON):

    
    {
      "displayName": "DISPLAY_NAME",
       'wafSettings': "  {
           "wafService": "WAF_SERVICE",
      
    "wafFeature": "WAF_FEATURE"
      }
      "webSettings": {
        "allowedDomains": "DOMAINS",
        "integrationType": "INTEGRATION_TYPE"
       }
       
    }
    

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    次のような JSON レスポンスが返されます。

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

  2. ウェブページの reCAPTCHA JavaScript を、作成したアクション トークン キーと統合します。手順については、アクション トークンキーの統合タイプに対応するドキュメントをご覧ください。

  3. reCAPTCHA からトークンを受信したら、次の形式の事前定義されたリクエスト ヘッダーにトークンを添付します。

     X-Recaptcha-Token: value-of-your-action-token
    

    XHR、Ajax、Fetch API などの言語および Fetch API を使用して、事前定義されたリクエスト ヘッダーにトークンを添付できます。

    次のサンプル スクリプトでは、JavaScript と XHR を使用して、execute アクションを保護し、事前定義されたリクエスト ヘッダーにトークンを添付する方法を示します。

      
      <script>
        src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_KEY"></script>
    
        <script>
        function onSuccess(action_token) {
             const xhr = new XMLHttpRequest();
             xhr.open('GET','YOUR_URL', false);
             // Attach the action-token to the predefined request header
             xhr.setRequestHeader("X-Recaptcha-Token", action_token);
             xhr.send(null);
           }
           function onError(reason) {
             alert('Response promise rejected: ' + reason);
           grecaptcha.enterprise.ready(function () {
             document.getElementById("execute-button").onclick = () => {
               grecaptcha.enterprise.execute('ACTION_TOKEN_KEY', {
               }).then(onSuccess, onError);
             };
           });
          }
        </script>
      
      

reCAPTCHA セッション トークンを実装する

reCAPTCHA JavaScript は、評価後に reCAPTCHA セッション トークンをエンドユーザーのブラウザの Cookie として設定します。エンドユーザーのブラウザには Cookie が添付され、reCAPTCHA JavaScript がアクティブである限り、その Cookie は更新されます。

セッション トークンを Cookie として提供するには、保護の必要なページの前にエンドユーザーが閲覧するウェブページの少なくとも 1 つにセッション トークン キーをインストールします。たとえば、購入手続きページを保護するには、セッション トークン キーをホームページまたは商品ページにインストールします。

セッション トークンキーをウェブページにインストールする方法については、スコアベースのキーをフロントエンドに統合するをご覧ください。

この Cookie を使用すると、エンドユーザーの後続のリクエストや特定のドメインでのページの読み込みを保護できます。セッション トークンはデフォルトで 30 分間有効です。ただし、エンドユーザーがセッション トークンを実装したページにとどまる場合、reCAPTCHA はセッション トークンを定期的に更新して期限切れにならないようにします。

reCAPTCHA で保護する必要がある各ページにセッション トークンをインストールします。すべてのページを reCAPTCHA で保護し、Cloud Armor ルールを使用して、エンドユーザーが閲覧する最初のページを除くすべてのページでアクセスを適用することをおすすめします。

reCAPTCHA セッション トークンの例を次に示します。
   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

reCAPTCHA セッション トークンを実装するには、次の手順を行います。

  1. ウェブサイトのセッション トークンキーを作成します。 <0x0

    Cloud コンソール

    1. Google Cloud コンソールで、[reCAPTCHA] ページに移動します。

      [reCAPTCHA] に移動

    2. ページの上部にあるプロジェクト セレクタにリソース名が表示されていることを確認します。

      プロジェクトの名前が表示されない場合は、リソース セレクタをクリックしてプロジェクトを選択します。

    3. [鍵を作成] をクリックします。
    4. [表示名] フィールドに、キーの表示名を入力します。
    5. WAF 用 reCAPTCHA キーを作成するプラットフォームに応じて、適切なアクションを実行します。
      1. [アプリケーションの種類] で [ウェブ] を選択します。

        [ドメインリスト] セクションが表示されます。

      2. ドメインとサブドメインの reCAPTCHA キーを保護するには、[ドメインの所有権の証明を無効にする] トグルがオフになっていることを確認します。

        サイトの制限はないため、ドメインの所有権の証明の無効化はセキュリティ リスクとなります。したがって、reCAPTCHA キーは誰でもアクセスして使用できます。

      3. お使いのウェブサイトのドメイン名を入力してください。

        1. [ドメインリスト] セクションで、[ドメインを追加] をクリックします。
        2. [ドメイン] フィールドにドメインの名前を入力します。
        3. 省略可: ドメインを追加するには、[ドメインを追加] をクリックし、[ドメイン] フィールドに別のドメインの名前を入力します。最大 250 個のドメインを追加できます。

          ウェブサイトの場合、reCAPTCHA キーは、指定したドメインとサブドメインに固有のものです。複数のドメインからウェブサイトを提供する場合は、複数のドメインを指定できます。あるドメイン(たとえば examplepetstore.com)を指定すると、そのサブドメイン(たとえば subdomain.examplepetstore.com)を指定する必要はありません。

      4. [追加設定] で、[このキーをウェブ アプリケーション ファイアウォール(WAF)にデプロイしますか?] 切り替えをオンにします。
      5. [機能] オプションから [セッション] を選択します。

      6. 省略可: [ドメインの所有権の証明を無効化] をオンにします。

        サイトの制限はないため、ドメインの所有権の証明の無効化はセキュリティ リスクとなります。したがって、reCAPTCHA キーは誰でもアクセスして使用できます。

      7. [鍵を作成] をクリックします。
      8. 新しく作成された鍵は、[reCAPTCHA のキー] ページにリストされています。

    gcloud

    reCAPTCHA キーを作成するには、gcloud recaptcha keys create コマンドを使用します。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • INTEGRATION_TYPE: 統合の種類 score を指定します。
    • DISPLAY_NAME: キーの名前。通常はサイトの名前です。
    • DOMAIN_NAME: キーの使用を許可されたウェブサイトのドメインまたはサブドメイン。

      複数のドメインをカンマ区切りのリストとして指定します。 省略可: --allow-all-domains を指定して、ドメインの所有権の証明を無効にします。

      サイトの制限はないため、ドメインの所有権の証明の無効化はセキュリティ リスクとなります。したがって、reCAPTCHA キーは誰でもアクセスして使用できます。

    • WAF_FEATURE: WAF 機能の名前。 session-token を実行します。
    • WAF_SERVICE: WAF サービス プロバイダの名前。 Cloud Armor に CA を指定します。

    gcloud recaptcha keys create コマンドを実行します。

    Linux、macOS、Cloud Shell

    gcloud recaptcha keys create \
    --web \
    --display-name=DISPLAY_NAME  \
    --integration-type=INTEGRATION_TYPE \
    --domains=DOMAIN_NAME \
    --waf-feature=WAF_FEATURE \
    --waf-service=WAF_SERVICE

    Windows(PowerShell)

    gcloud recaptcha keys create `
    --web `
    --display-name=DISPLAY_NAME  `
    --integration-type=INTEGRATION_TYPE `
    --domains=DOMAIN_NAME `
    --waf-feature=WAF_FEATURE `
    --waf-service=WAF_SERVICE

    Windows(cmd.exe)

    gcloud recaptcha keys create ^
    --web ^
    --display-name=DISPLAY_NAME  ^
    --integration-type=INTEGRATION_TYPE ^
    --domains=DOMAIN_NAME ^
    --waf-feature=WAF_FEATURE ^
    --waf-service=WAF_SERVICE

    レスポンスには、新しく作成された reCAPTCHA キーが含まれます。

    REST

    キーの種類と統合タイプに関する API リファレンス情報については、統合タイプをご覧ください。

    リクエストのデータを使用する前に、次のように置き換えます。

    • INTEGRATION_TYPE: 統合の種類 score を指定します。
    • DISPLAY_NAME: キーの名前。通常はサイトの名前です。
    • DOMAIN_NAME: キーの使用を許可されたウェブサイトのドメインまたはサブドメイン。

      複数のドメインをカンマ区切りのリストとして指定します。 省略可: --allow-all-domains を指定して、ドメインの所有権の証明を無効にします。

      サイトの制限はないため、ドメインの所有権の証明の無効化はセキュリティ リスクとなります。したがって、reCAPTCHA キーは誰でもアクセスして使用できます。

    • WAF_FEATURE: WAF 機能の名前。 session-token を実行します。
    • WAF_SERVICE: WAF サービス プロバイダの名前。 Cloud Armor に CA を指定します。
    • DEFAULT_SCORE_THRESHOLD: ポリシーベースのチャレンジキーの場合、カスタム スコアしきい値が定義されていないときに、キーのユニバーサル チャレンジしきい値を定義します。これはプレビュー版です。
    • ACTION_SCORE_THRESHOLDS: ポリシーベースのチャレンジ キーの場合、アクションと対応するしきい値スコア(0.0 ~ 1.0)を指定します。例: login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'これはプレビュー版です。

    HTTP メソッドと URL:

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    リクエストの本文(JSON):

    
    {
      "displayName": "DISPLAY_NAME",
       'wafSettings': "  {
           "wafService": "WAF_SERVICE",
      
    "wafFeature": "WAF_FEATURE"
      }
      "webSettings": {
        "allowedDomains": "DOMAINS",
        "integrationType": "INTEGRATION_TYPE"
       }
       
    }
    

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    次のような JSON レスポンスが返されます。

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

  2. セッション トークン キーと waf=session を reCAPTCHA JavaScript に追加します。

    次のサンプル スクリプトは、セッション トークンをウェブページに実装する方法を示しています。

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <title>reCAPTCHA WAF Session Token</title>
     <script src="https://www.google.com/recaptcha/enterprise.js?render=SESSION_TOKEN_KEY&waf=session" async defer></script>
     <body></body>
    </head>
    </html>

reCAPTCHA 課題ページを実装する

reCAPTCHA による確認ページを実装すると、reCAPTCHA によってインタースティシャル ページにリダイレクトされ、CAPTCHA 確認をユーザーに表示する必要があるかどうかが判定されます。そのため、CAPTCHA による確認はすべてのユーザーには表示されない可能性があります。

reCAPTCHA 課題ページを実装するには、ウェブサイト用の課題ページキーを作成します。

Cloud コンソール

  1. Google Cloud コンソールで、[reCAPTCHA] ページに移動します。

    [reCAPTCHA] に移動

  2. ページの上部にあるプロジェクト セレクタにリソース名が表示されていることを確認します。

    プロジェクトの名前が表示されない場合は、リソース セレクタをクリックしてプロジェクトを選択します。

  3. [鍵を作成] をクリックします。
  4. [表示名] フィールドに、キーの表示名を入力します。
  5. WAF 用 reCAPTCHA キーを作成するプラットフォームに応じて、適切なアクションを実行します。
    1. [アプリケーションの種類] で [ウェブ] を選択します。
    2. [追加設定] で、[このキーをウェブ アプリケーション ファイアウォール(WAF)にデプロイしますか?] 切り替えをオンにします。
    3. [機能] オプションから [チャレンジ] を選択します。

    4. [ドメインの所有権の証明を無効化] をオンにします。

      確認ページのキーのドメインの所有権の証明を無効にすると、Cloud Armor はドメインを検証します。

    5. [鍵を作成] をクリックします。
    6. 新しく作成された鍵は、[reCAPTCHA のキー] ページにリストされています。

gcloud

reCAPTCHA キーを作成するには、gcloud recaptcha keys create コマンドを使用します。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • INTEGRATION_TYPE: 統合の種類 invisible を指定します。
  • DISPLAY_NAME: キーの名前。通常はサイトの名前です。
  • DOMAIN_NAME: キーの使用を許可されたウェブサイトのドメインまたはサブドメイン。 --allow-all-domains を実行します。
  • WAF_FEATURE: WAF 機能の名前。 challenge-page を実行します。
  • WAF_SERVICE: WAF サービス プロバイダの名前。 Cloud Armor に CA を指定します。

gcloud recaptcha keys create コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud recaptcha keys create \
--web \
--display-name=DISPLAY_NAME  \
--integration-type=INTEGRATION_TYPE \
--domains=DOMAIN_NAME \
--waf-feature=WAF_FEATURE \
--waf-service=WAF_SERVICE

Windows(PowerShell)

gcloud recaptcha keys create `
--web `
--display-name=DISPLAY_NAME  `
--integration-type=INTEGRATION_TYPE `
--domains=DOMAIN_NAME `
--waf-feature=WAF_FEATURE `
--waf-service=WAF_SERVICE

Windows(cmd.exe)

gcloud recaptcha keys create ^
--web ^
--display-name=DISPLAY_NAME  ^
--integration-type=INTEGRATION_TYPE ^
--domains=DOMAIN_NAME ^
--waf-feature=WAF_FEATURE ^
--waf-service=WAF_SERVICE

レスポンスには、新しく作成された reCAPTCHA キーが含まれます。

REST

キーの種類と統合タイプに関する API リファレンス情報については、統合タイプをご覧ください。

リクエストのデータを使用する前に、次のように置き換えます。

  • INTEGRATION_TYPE: 統合の種類 invisible を指定します。
  • DISPLAY_NAME: キーの名前。通常はサイトの名前です。
  • DOMAIN_NAME: キーの使用を許可されたウェブサイトのドメインまたはサブドメイン。 --allow-all-domains を実行します。
  • WAF_FEATURE: WAF 機能の名前。 challenge-page を実行します。
  • WAF_SERVICE: WAF サービス プロバイダの名前。 Cloud Armor に CA を指定します。
  • DEFAULT_SCORE_THRESHOLD: ポリシーベースのチャレンジキーの場合、カスタム スコアしきい値が定義されていないときに、キーのユニバーサル チャレンジしきい値を定義します。これはプレビュー版です。
  • ACTION_SCORE_THRESHOLDS: ポリシーベースのチャレンジ キーの場合、アクションと対応するしきい値スコア(0.0 ~ 1.0)を指定します。例: login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'これはプレビュー版です。

HTTP メソッドと URL:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

リクエストの本文(JSON):


{
  "displayName": "DISPLAY_NAME",
   'wafSettings': "  {
       "wafService": "WAF_SERVICE",
  
"wafFeature": "WAF_FEATURE"
  }
  "webSettings": {
    "allowedDomains": "DOMAINS",
    "integrationType": "INTEGRATION_TYPE"
   }
   
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。


{
  "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
"displayName": "DISPLAY_NAME,

"webSettings": {
  "allowAllDomains": true,
  "allowedDomains": [
    "localhost"
  ],

  "integrationType": "INVISIBLE",
 

},
"wafSettings": {
  "wafService": "CA",

  "wafFeature": "CHALLENGE_PAGE"
  

}
}

Cloud Armor セキュリティ ポリシーを構成する

Cloud Armor 用 reCAPTCHA の機能を実装したら、bot 管理用の Cloud Armor セキュリティ ポリシーを構成する必要があります。

reCAPTCHA 確認ページを実装する場合は、次のことを行う必要があります。

  1. 確認ページキーをセキュリティ ポリシーに関連付けます。
  2. リクエストを reCAPTCHA 評価にリダイレクトするようにセキュリティ ポリシー ルールを構成します。

reCAPTCHA アクション トークンまたはセッション トークンを実装した場合は、reCAPTCHA トークンを評価するセキュリティ ポリシー ルールを構成する必要があります。

Cloud Armor セキュリティ ポリシーを構成する前に、Cloud Armor の reCAPTCHA トークン属性について理解しておいてください。

Cloud Armor セキュリティ ポリシーを構成し、セキュリティ ポリシーで WAF 用の reCAPTCHA キーを使用する方法については、bot 管理のルールを構成するをご覧ください。

reCAPTCHA スコアを取得する

reCAPTCHA アクション トークンとセッション トークンの場合、X-Recaptcha-Wafdata ヘッダーから reCAPTCHA スコアを取得できます。これらのスコアに基づいて、ユーザー リクエストに対して実行する必要があるカスタム アクションを構成できます。

次の例は、X-Recaptcha-Wafdata ヘッダーのサンプルを示しています。

X-Recaptcha-Wafdata: waf_service="Google Cloud Armor", action_token;score=0.9, session_token;score=0.8\r\n

Google Cloud Armor ログで reCAPTCHA スコアを確認することもできます。

次のステップ