reCAPTCHA Enterprise für WAF und Google Cloud Armor einbinden

In diesem Dokument erfahren Sie, wie Sie eine reCAPTCHA-Herausforderung, reCAPTCHA-Aktionstokens und reCAPTCHA-Sitzungstokens für Google Cloud Armor implementieren.

Hinweis

Bevor Sie eine reCAPTCHA-Herausforderungsseite, Aktions- oder Sitzungstokens verwenden, müssen Sie die reCAPTCHA Enterprise API aktivieren.

  1. Rufen Sie in der Google Cloud Console die Seite reCAPTCHA Enterprise API auf.

    Zur reCAPTCHA Enterprise API

  2. Prüfen Sie, ob der Name Ihres Projekts in der Projektauswahl oben auf der Seite angezeigt wird. Wenn Sie den Namen Ihres Projekts nicht sehen, klicken Sie auf die Projektauswahl und wählen Sie Ihr Projekt aus.

  3. Klicken Sie auf Aktivieren.

reCAPTCHA-Herausforderung implementieren

Wenn Sie eine reCAPTCHA-Identitätsseite implementieren, ermittelt reCAPTCHA Enterprise, ob einem Nutzer eine CAPTCHA-Abfrage angezeigt werden muss. Daher sind CAPTCHA-Herausforderungen möglicherweise nicht für alle Nutzer sichtbar.

So implementieren Sie eine reCAPTCHA-Herausforderungsseite:

  1. Erstellen Sie einen reCAPTCHA WAF-Websiteschlüssel für die Challenge.

    Console

    1. Rufen Sie in der Google Cloud Console die Seite reCAPTCHA Enterprise auf.

      Zur Seite „reCAPTCHA Enterprise“

    2. Prüfen Sie, ob der Name Ihres Projekts in der Ressourcenauswahl oben auf der Seite angezeigt wird.

      Wenn Sie den Namen Ihres Projekts nicht sehen, klicken Sie auf die Ressourcenauswahl und wählen Sie Ihr Projekt aus.

    3. Klicken Sie auf Schlüssel erstellen.

    4. Geben Sie im Feld Anzeigename einen Anzeigenamen für den Schlüssel ein.
    5. Wählen Sie im Drop-down-Menü Plattformtyp auswählen die Option Website aus.

    6. Maximieren Sie den Bereich Web Application Firewall (WAF), Domainbestätigung, AMP-Seiten und Herausforderung.
    7. Aktivieren Sie die Ein-/Aus-Schaltfläche Firewall für Web-App (WAF).
    8. Wähle im Drop-down-Menü Funktion die Option Herausforderung aus.

    9. Aktivieren Sie die Option Domainbestätigung deaktivieren.

      Wenn Sie die Domainbestätigung für die Websiteschlüssel der Identitätsbestätigung deaktivieren, überprüft Google Cloud Armor die Domain.

    10. Klicken Sie auf Schlüssel erstellen.
    11. Der neu erstellte Schlüssel wird auf der Seite reCAPTCHA-Schlüssel aufgeführt.

    gcloud CLI

    Verwenden Sie zum Erstellen von WAF-Websiteschlüsseln den Befehl gcloud recaptcha keys create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Geben Sie folgende Werte an:

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • WAF_FEATURE: Name des WAF-Features. Geben Sie challenge-page an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Google Cloud Armor an.
    • INTEGRATION_TYPE: Art der Integration. Geben Sie INVISIBLE an.
    • DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie --allow-all-domains an, um die Domainbestätigung zu deaktivieren.

      Wenn Sie die Domainbestätigung für die Websiteschlüssel der Identitätsbestätigung deaktivieren, überprüft Google Cloud Armor die Domain.

    REST

    API-Referenzinformationen zu Schlüsseltypen und Integrationstypen finden Sie unter Schlüssel und Integrationstyp.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID: Ihre Google Cloud-Projekt-ID
    • DISPLAY_NAME: Anzeigename für den Schlüssel
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Google Cloud Armor an.
    • WAF_FEATURE: Name des WAF-Features. Geben Sie challenge-page an.
    • DOMAINS (nur für Websites und WAF): Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie --allow-all-domains an, um die Domainbestätigung zu deaktivieren.

      Wenn Sie die Domainbestätigung für die Websiteschlüssel der Identitätsbestätigung deaktivieren, überprüft Google Cloud Armor die Domain.

    • TYPE_OF_INTEGRATION (nur für Websites und WAF): Geben Sie INVISIBLE an.

    HTTP-Methode und URL:

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

    JSON-Text der Anfrage:

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

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $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

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    
    {
        "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
      "displayName": "WAF session-token test key",
      "webSettings": {
        "allowAllDomains": true,
        "allowedDomains": [
          "localhost"
        ],
    
        "integrationType": "INVISIBLE",
    
      },
      "wafSettings": {
        "wafService": "CA",
        "wafFeature": "CHALLENGE_PAGE"
    
      }
    }
    
    

  2. Konfigurieren Sie Google Cloud Armor-Sicherheitsrichtlinien. Informationen zum Verwenden eines reCAPTCHA-Websiteschlüssels für die Challenge mit Ihrer Sicherheitsrichtlinie finden Sie unter Regeln für die Botverwaltung konfigurieren.

reCAPTCHA-Aktionstokens implementieren

reCAPTCHA Enterprise muss auf Ihren Webseiten ausgeführt werden, um Aktionstokens zu generieren. Nachdem reCAPTCHA Enterprise ein Aktionstoken generiert hat, hängen Sie das Token an einen vordefinierten Anfrageheader an, wo Sie Nutzeraktionen wie den Checkout schützen müssen. Aktionstokens sind standardmäßig 30 Minuten lang gültig und können kürzer sein. Daher müssen Sie das Aktionstoken vor dem Ablauf des Tokens an einen vordefinierten Anfrageheader anhängen, damit Google Cloud Armor die Tokenattribute auswerten kann.

So implementieren Sie ein reCAPTCHA-Aktionstoken:

  1. Erstellen Sie einen reCAPTCHA WAF-Aktionstoken-Websiteschlüssel.

    Console

    1. Rufen Sie in der Google Cloud Console die Seite reCAPTCHA Enterprise auf.

      Zur Seite „reCAPTCHA Enterprise“

    2. Prüfen Sie, ob der Name Ihres Projekts in der Ressourcenauswahl oben auf der Seite angezeigt wird.

      Wenn Sie den Namen Ihres Projekts nicht sehen, klicken Sie auf die Ressourcenauswahl und wählen Sie Ihr Projekt aus.

    3. Klicken Sie auf Schlüssel erstellen.

    4. Geben Sie im Feld Anzeigename einen Anzeigenamen für den Schlüssel ein.
    5. Wählen Sie im Drop-down-Menü Plattformtyp auswählen die Option Website aus.

      Der Abschnitt Domainliste wird angezeigt.

    6. Geben Sie den Domainnamen für Ihre Website ein:

      1. Klicken Sie im Abschnitt Domainliste auf Domain hinzufügen.

      2. Geben Sie im Feld Domain den Namen Ihrer Domain ein.
      3. Optional: Klicken Sie zum Hinzufügen einer zusätzlichen Domain auf Domain hinzufügen und geben Sie den Namen einer anderen Domain in das Feld Domain ein. Sie können bis zu 250 Domains hinzufügen.

        Bei Websites gilt der reCAPTCHA-Websiteschlüssel nur für die von Ihnen angegebenen Domains und Subdomains. Sie können mehrere Domains angeben, wenn Sie Ihre Website von mehreren Domains bereitstellen. Wenn Sie eine Domain angeben (z. B. examplepetstore.com), müssen Sie ihre Subdomains nicht angeben (z. B. subdomain.examplepetstore.com).

    7. Maximieren Sie den Bereich Web Application Firewall (WAF), Domainbestätigung, AMP-Seiten und Herausforderung.
    8. Aktivieren Sie die Ein-/Aus-Schaltfläche Firewall für Web-App (WAF).
    9. Wählen Sie im Drop-down-Menü Funktion die Option Aktionstoken aus.

    10. Optional: Aktivieren Sie die Option Domainbestätigung deaktivieren.

      Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es auf der Website keine Einschränkungen gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem Nutzer verwendet werden.

    11. Optional: Aktivieren Sie die Option Herausforderung verwenden.

    12. Klicken Sie auf Schlüssel erstellen.
    13. Der neu erstellte Schlüssel wird auf der Seite reCAPTCHA-Schlüssel aufgeführt.

    gcloud CLI

    Verwenden Sie zum Erstellen von WAF-Websiteschlüsseln den Befehl gcloud recaptcha keys create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Geben Sie folgende Werte an:

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • WAF_FEATURE: Name des WAF-Features. Geben Sie action-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Google Cloud Armor an.
    • INTEGRATION_TYPE: Art der Integration. Geben Sie SCORE oder CHECKBOX an.
    • DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie --allow-all-domains an, um die Domainbestätigung zu deaktivieren.

      Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es auf der Website keine Einschränkungen gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem Nutzer verwendet werden.

    REST

    API-Referenzinformationen zu Schlüsseltypen und Integrationstypen finden Sie unter Schlüssel und Integrationstyp.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID: Ihre Google Cloud-Projekt-ID
    • DISPLAY_NAME: Anzeigename für den Schlüssel
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Google Cloud Armor an.
    • WAF_FEATURE: Name des WAF-Features. Geben Sie action-token an.
    • DOMAINS (nur für Websites und WAF): Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie --allow-all-domains an, um die Domainbestätigung zu deaktivieren.

      Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es auf der Website keine Einschränkungen gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem Nutzer verwendet werden.

    • TYPE_OF_INTEGRATION (nur für Websites und WAF): Geben Sie SCORE oder CHECKBOX an.

    HTTP-Methode und URL:

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

    JSON-Text der Anfrage:

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

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $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

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

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

  2. Installieren Sie auf Ihren Webseiten den Schlüssel der Aktionstoken-Website. Eine Anleitung finden Sie in dem Dokument, das zum Integrationstyp Ihres Website-Schlüssels für Aktionstokens passt.

  3. Nachdem Sie das Token von reCAPTCHA Enterprise erhalten haben, hängen Sie es an einen vordefinierten Anfrageheader im folgenden Format an:

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

    Sie können Sprachen wie XHR, Ajax oder Fetch API verwenden, um das Token an einen vordefinierten Anfrageheader anzuhängen.

    Das folgende Beispielskript zeigt, wie die Ausführungsaktion geschützt und das Token mithilfe von JavaScript + XHR an einen vordefinierten Anfrage-Header angehängt wird:

       <script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_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_SITE_KEY', {
            }).then(onSuccess, onError);
          };
        });
       </script>
    
     ```
    
  4. Konfigurieren Sie Google Cloud Armor-Sicherheitsrichtlinien. Informationen zum Verwenden des reCAPTCHA-Aktionstokens-Websiteschlüssels mit Ihrer Sicherheitsrichtlinie finden Sie unter Regeln für die Botverwaltung konfigurieren.

reCAPTCHA-Sitzungstokens implementieren

Das reCAPTCHA-JavaScript legt nach der Bewertung ein reCAPTCHA-Sitzungstoken als Cookie im Browser des Endnutzers fest. Der Browser des Endnutzers hängt das Cookie an und aktualisiert das Cookie, solange das reCAPTCHA-JavaScript aktiv bleibt.

Um ein Sitzungs-Token als Cookie bereitzustellen, installieren Sie einen auf einem reCAPTCHA-Wert basierenden Websiteschlüssel auf mindestens einer Ihrer Webseiten, die die folgenden Anforderungen erfüllen:

  • Die Webseite muss die Seite sein, die der Endnutzer aufruft, bevor die Seite geschützt werden muss. Wenn Sie beispielsweise die Kassenseite schützen möchten, installieren Sie den auf dem reCAPTCHA-Score basierenden Websiteschlüssel auf der Startseite oder der Produktseite.
  • Die Webseite wird durch eine Google Cloud Armor-Sicherheitsrichtlinie geschützt.

Mit diesem Cookie können Sie nachfolgende Anfragen des Nutzers und das Laden der Seite in einer bestimmten Domain schützen. Sitzungstokens sind standardmäßig 30 Minuten lang gültig. Wenn der Nutzer jedoch auf der Seite verbleibt, auf der Sie das Sitzungstoken implementiert haben, aktualisiert reCAPTCHA Enterprise das Sitzungstoken regelmäßig, um zu verhindern, dass es abläuft.

Installieren Sie Sitzungs-Tokens auf jeder Seite, die durch reCAPTCHA Enterprise geschützt werden muss. Wir empfehlen, reCAPTCHA Enterprise auf jeder Seite zu installieren und Google Cloud Armor-Regeln zu verwenden, um den Zugriff auf allen Seiten zu erzwingen, mit Ausnahme der ersten Seite, die Endnutzer durchsuchen.

Hier ist ein Beispiel für ein reCAPTCHA-Sitzungstoken:

   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

So implementieren Sie ein reCAPTCHA-Sitzungstoken:

  1. Erstellen Sie einen reCAPTCHA WAF-Sitzungstoken-Websiteschlüssel.

    Console

    1. Rufen Sie in der Google Cloud Console die Seite reCAPTCHA Enterprise auf.

      Zur Seite „reCAPTCHA Enterprise“

    2. Prüfen Sie, ob der Name Ihres Projekts in der Ressourcenauswahl oben auf der Seite angezeigt wird.

      Wenn Sie den Namen Ihres Projekts nicht sehen, klicken Sie auf die Ressourcenauswahl und wählen Sie Ihr Projekt aus.

    3. Klicken Sie auf Schlüssel erstellen.

    4. Geben Sie im Feld Anzeigename einen Anzeigenamen für den Schlüssel ein.
    5. Wählen Sie im Drop-down-Menü Plattformtyp auswählen die Option Website aus.

      Der Abschnitt Domainliste wird angezeigt.

    6. Geben Sie den Domainnamen für Ihre Website ein:

      1. Klicken Sie im Abschnitt Domainliste auf Domain hinzufügen.

      2. Geben Sie im Feld Domain den Namen Ihrer Domain ein.
      3. Optional: Klicken Sie zum Hinzufügen einer zusätzlichen Domain auf Domain hinzufügen und geben Sie den Namen einer anderen Domain in das Feld Domain ein. Sie können bis zu 250 Domains hinzufügen.

        Bei Websites gilt der reCAPTCHA-Websiteschlüssel nur für die von Ihnen angegebenen Domains und Subdomains. Sie können mehrere Domains angeben, wenn Sie Ihre Website von mehreren Domains bereitstellen. Wenn Sie eine Domain angeben (z. B. examplepetstore.com), müssen Sie ihre Subdomains nicht angeben (z. B. subdomain.examplepetstore.com).

    7. Maximieren Sie den Bereich Web Application Firewall (WAF), Domainbestätigung, AMP-Seiten und Herausforderung.
    8. Aktivieren Sie die Ein-/Aus-Schaltfläche Firewall für Web-App (WAF).
    9. Wählen Sie im Drop-down-Menü Funktion die Option Sitzungstoken aus.

    10. Optional: Aktivieren Sie die Option Domainbestätigung deaktivieren.

      Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es auf der Website keine Einschränkungen gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem Nutzer verwendet werden.

    11. Klicken Sie auf Schlüssel erstellen.
    12. Der neu erstellte Schlüssel wird auf der Seite reCAPTCHA-Schlüssel aufgeführt.

    gcloud CLI

    Verwenden Sie zum Erstellen von WAF-Websiteschlüsseln den Befehl gcloud recaptcha keys create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Geben Sie folgende Werte an:

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • WAF_FEATURE: Name des WAF-Features. Geben Sie session-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Google Cloud Armor an.
    • INTEGRATION_TYPE: Art der Integration. Geben Sie SCORE an.
    • DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie --allow-all-domains an, um die Domainbestätigung zu deaktivieren.

      Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es auf der Website keine Einschränkungen gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem Nutzer verwendet werden.

    REST

    API-Referenzinformationen zu Schlüsseltypen und Integrationstypen finden Sie unter Schlüssel und Integrationstyp.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID: Ihre Google Cloud-Projekt-ID
    • DISPLAY_NAME: Anzeigename für den Schlüssel
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Google Cloud Armor an.
    • WAF_FEATURE: Name des WAF-Features. Geben Sie session-token an.
    • DOMAINS (nur für Websites und WAF): Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie mehrere Domains als durch Kommas getrennte Liste an. Optional: Geben Sie --allow-all-domains an, um die Domainbestätigung zu deaktivieren.

      Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es auf der Website keine Einschränkungen gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem Nutzer verwendet werden.

    • TYPE_OF_INTEGRATION (nur für Websites und WAF): Geben Sie SCORE an.

    HTTP-Methode und URL:

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

    JSON-Text der Anfrage:

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

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $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

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

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

  2. Fügen Sie dem reCAPTCHA-JavaScript den Sitzungsschlüssel für das Sitzungstoken und waf=session hinzu.

    Das folgende Beispielskript zeigt, wie ein Sitzungs-Token auf einer Webseite implementiert wird:

      <!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_SITE_KEY&waf=session" async defer></script>
      </head>
    </html>
    
  3. Konfigurieren Sie Google Cloud Armor-Sicherheitsrichtlinien. Informationen zum Verwenden des reCAPTCHA-Sitzungstokens-Websiteschlüssels mit Ihrer Sicherheitsrichtlinie finden Sie unter Regeln für die Botverwaltung konfigurieren.

Beispiele für die Verwendung mehrerer Features in einer einzelnen Anwendung

Sie können ein oder mehrere reCAPTCHA Enterprise für WAF-Funktionen in einer einzelnen Anwendung verwenden.

Beispiel 1: reCAPTCHA-Sitzungstokens und reCAPTCHA-Abfrageseite verwenden

Sie können auf Seiten, auf die ein Nutzer zugreifen kann, ein reCAPTCHA-Sitzungstoken hinzufügen, damit das Cookie regelmäßig aktualisiert wird, z. B. eine Anmeldeseite. Regel für die Google Cloud Armor-Sicherheitsrichtlinie so konfigurieren, dass die Anfrage bei niedrigem Wert an eine reCAPTCHA-Herausforderungsseite weitergeleitet wird.

Die folgende Abbildung zeigt einen Workflow, der Features der reCAPTCHA-Sitzungstoken- und reCAPTCHA-Herausforderung verwendet:

Beispiel 2: reCAPTCHA-Aktionstokens und reCAPTCHA-Abfrageseite verwenden

Sie können ein reCAPTCHA-Aktionstoken hinzufügen, um eine Nutzeraktion zu schützen, z. B. Checkout. Konfigurieren Sie die Regel einer Google Cloud Armor-Sicherheitsrichtlinie so, dass die Anfrage unter den folgenden Bedingungen an eine reCAPTCHA-Herausforderungsseite weitergeleitet wird:

  • Die Punktzahl ist niedrig.
  • Das Attribut action_name des Aktionstokens stimmt nicht mit der geschützten Nutzeraktion überein.

Die folgende Abbildung zeigt einen Workflow, der Features der reCAPTCHA-Aktions- und reCAPTCHA-Herausforderung verwendet:

Das folgende Beispielskript zeigt, wie Sie ein reCAPTCHA-Aktions-Token verwenden und zu einer reCAPTCHA-Herausforderungsseite mit dem angehängten Aktionstoken weiterleiten:

   <script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_KEY"></script>
    <script>
     function onSuccess(token) {
       const xhr = new XMLHttpRequest();
       xhr.open('GET','http://www.abc.com/checkout', false);
       xhr.setRequestHeader("X-Recaptcha-Token", token);
       xhr.onreadystatechange = function() {
         // Make sure that the request is finished and response is ready with 200
         if (this.readyState == 4 && this.status == 200) {
           // Display the response, it could be a reCAPTCHA challenge
           // page based on your Google Cloud Armor security rule settings.
            document.open();
            document.write(xhr.responseText);
            document.close();

         }
       };
       xhr.send(null);
     }

     grecaptcha.enterprise.ready(function () {
       document.getElementById("execute-button").onclick = () => {
         grecaptcha.enterprise.execute('ACTION_TOKEN_SITE_KEY', {
         }).then(onSuccess, onError);
       };
     });
    </script>

Nächste Schritte