In Google Cloud Armor für Websites einbinden

In diesem Dokument erfahren Sie, wie Sie reCAPTCHA für Cloud Armor auf Websites einbinden.

Implementieren Sie zum Abschließen der Integration mindestens ein Feature von reCAPTCHA for Cloud Armor und konfigurieren Sie Cloud Armor-Sicherheitsrichtlinien.

Hinweis

  1. Aktivieren Sie die reCAPTCHA Enterprise API.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    API aktivieren

  2. Planen Sie, wie Sie die Funktionen von reCAPTCHA for Cloud Armor implementieren möchten, um Ihre Website zu schützen.

    1. Wählen Sie ein oder mehrere WAF-Features aus, die am besten zu Ihrem Anwendungsfall passen.
    2. Identifizieren Sie die Seiten, die Sie schützen möchten, und den Typ der Cloud Armor-Funktion, die Sie auf diesen Seiten implementieren möchten.

Funktionen von reCAPTCHA for Cloud Armor implementieren

Je nach Ihren Anforderungen können Sie ein oder mehrere Features von reCAPTCHA for Cloud Armor in einer einzelnen Anwendung verwenden.

Wenn Sie mehrere Funktionen verwenden möchten, müssen Sie für jede dieser Funktionen einen reCAPTCHA-Schlüssel erstellen und in Ihrer Anwendung verwenden. Wenn Sie beispielsweise reCAPTCHA-Aktionstokens und die reCAPTCHA-Aufgabenseite verwenden möchten, müssen Sie einen Aktionstoken-Schlüssel und einen Aufgabenseiten-Schlüssel erstellen und in Ihrer Anwendung verwenden.

reCAPTCHA-Aktionstokens implementieren

reCAPTCHA muss auf Ihren Webseiten ausgeführt werden, um Aktionstokens zu generieren. Nachdem reCAPTCHA ein Aktionstoken generiert hat, hängen Sie es an einen vordefinierten Anfrageheader an, um Nutzeraktionen wie checkout zu schützen. Aktionstokens sind standardmäßig 30 Minuten lang gültig. Die Gültigkeitsdauer kann jedoch je nach Traffic variieren. Sie müssen das Aktions-Token an einen vordefinierten Anfrageheader anhängen, bevor das Token abläuft, damit Cloud Armor die Tokenattribute auswerten kann.

So implementieren Sie ein reCAPTCHA-Aktionstoken:

  1. Erstellen Sie einen Aktionstoken-Schlüssel für Ihre Website.

    Cloud Console

    1. Rufen Sie in der Google Cloud Console die Seite Google Cloud Fraud Defense auf.

      Zu Google Cloud Fraud Defense

    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. Wählen Sie den Tab Keys aus.
    4. Klicken Sie auf Schlüssel erstellen.
    5. Geben Sie im Feld Anzeigename einen Anzeigenamen für den Schlüssel ein.
    6. Führen Sie je nach Plattform, für die Sie reCAPTCHA-Schlüssel für WAF erstellen möchten, die entsprechende Aktion aus:
      1. Wählen Sie als Anwendungstyp die Option Web aus.

        Der Abschnitt Domainliste wird angezeigt.

      2. Zum Schutz des reCAPTCHA-Schlüssels für Ihre Domain und Subdomains müssen Sie den Ein/Aus-Button Domainbestätigung deaktivieren deaktivieren.

        Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es keine Einschränkungen für die Website gibt. Jeder kann auf Ihren reCAPTCHA-Schlüssel zugreifen und ihn verwenden.

      3. 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.

          Für Websites ist der reCAPTCHA-Schlüssel eindeutig 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 (z. B. subdomain.examplepetstore.com) nicht angeben. Es kann bis zu 30 Minuten dauern, bis Änderungen an der Domainliste wirksam werden.

      4. Aktivieren Sie unter Zusätzliche Einstellungen die Ein/Aus-Schaltfläche Wird dieser Schlüssel in einer Web Application Firewall (WAF) bereitgestellt?.
      5. Wählen Sie in den Funktionsoptionen die Option Aktion aus.

      6. Optional: Aktivieren Sie den Ein/Aus-Button Möchten Sie Aufgaben verwenden?.

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

    gcloud

    Verwenden Sie zum Erstellen von reCAPTCHA-Schlüsseln den Befehl gcloud recaptcha keys create.

    Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

    • INTEGRATION_TYPE: Art der Integration. Geben Sie score oder checkbox an.
    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • 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 keine Einschränkungen für die Website gibt. Jeder kann auf Ihren reCAPTCHA-Schlüssel zugreifen und ihn verwenden.

    • WAF_FEATURE: Name des WAF-Features. Geben Sie action-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Cloud Armor an.

    Führen Sie den Befehl gcloud recaptcha keys create aus:

    Linux, macOS oder 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

    Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.

    REST

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

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • INTEGRATION_TYPE: Art der Integration. Geben Sie score oder checkbox an.
    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • 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 keine Einschränkungen für die Website gibt. Jeder kann auf Ihren reCAPTCHA-Schlüssel zugreifen und ihn verwenden.

    • WAF_FEATURE: Name des WAF-Features. Geben Sie action-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Cloud Armor an.
    • DEFAULT_SCORE_THRESHOLD: Bei richtlinienbasierten Schlüssel für Aufgaben wird damit der universelle Schwellenwert für Aufgaben für den Schlüssel definiert, wenn kein benutzerdefinierter Schwellenwert für die Punktzahl definiert ist. Diese Funktion befindet sich in der Vorschau.
    • ACTION_SCORE_THRESHOLDS: Bei richtlinienbasierten Challenge-Schlüsseln wird hier die Aktion und der entsprechende Grenzwert zwischen 0,0 und 1,0 angegeben. Beispiel: login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. Diese Funktion befindet sich in der Vorschau.

    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": "INTEGRATION_TYPE"
       }
       
    }
    

    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": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

  2. Binden Sie das reCAPTCHA-JavaScript auf Ihren Webseiten mit dem von Ihnen erstellten Aktionsschlüssel ein. Eine Anleitung finden Sie in dem Dokument, das dem Integrationstyp Ihres Aktionsschlüssel entspricht.

  3. Nachdem Sie das Token von reCAPTCHA 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 Beispielscript zeigt, wie die execute-Aktion geschützt und das Token mit JavaScript + XHR an einen vordefinierten Anfrageheader angehängt wird:

      
      <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-Sitzungstokens implementieren

Das reCAPTCHA-JavaScript legt nach dem Aufrufen von execute() ein reCAPTCHA-Sitzungstoken als Cookie im Endnutzerbrowser fest. Der Browser des Endnutzers hängt das Cookie an und aktualisiert es, solange das reCAPTCHA-JavaScript aktiv bleibt.

Wenn Sie ein Sitzungstoken als Cookie bereitstellen möchten, installieren Sie einen Sitzungstoken-Schlüssel auf mindestens einer Ihrer Webseiten, die der Endnutzer vor der zu schützenden Seite aufruft. Wenn Sie beispielsweise die Zahlungsseite schützen möchten, installieren Sie einen Sitzungstoken-Schlüssel auf der Startseite oder Produktseite.

Informationen zum Installieren von Sitzungstokens auf Ihren Webseiten finden Sie unter Punktbasierte Schlüssel in das Frontend einbinden.

Mit diesem Cookie können Sie nachfolgende Anfragen und Seitenaufrufe des Endnutzers auf einer bestimmten Domain schützen. Sitzungstokens sind standardmäßig 30 Minuten lang gültig. Wenn der Endnutzer jedoch auf der Seite bleibt, auf der Sie das Sitzungstoken implementiert haben, wird es von reCAPTCHA regelmäßig aktualisiert, um ein Ablaufen zu verhindern.

Installieren Sie Sitzungstokens auf jeder Seite, die durch reCAPTCHA geschützt werden muss. Wir empfehlen, jede Seite mit reCAPTCHA zu schützen und Cloud Armor-Regeln zu verwenden, um den Zugriff auf alle Seiten mit Ausnahme der ersten Seite, die Endnutzer aufrufen, zu erzwingen.

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 Sitzungstoken-Schlüssel für Ihre Website.

    Cloud Console

    1. Rufen Sie in der Google Cloud Console die Seite Google Cloud Fraud Defense auf.

      Zu Google Cloud Fraud Defense

    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. Wählen Sie den Tab Keys aus.
    4. Klicken Sie auf Schlüssel erstellen.
    5. Geben Sie im Feld Anzeigename einen Anzeigenamen für den Schlüssel ein.
    6. Führen Sie je nach Plattform, für die Sie reCAPTCHA-Schlüssel für WAF erstellen möchten, die entsprechende Aktion aus:
      1. Wählen Sie als Anwendungstyp die Option Web aus.

        Der Abschnitt Domainliste wird angezeigt.

      2. Zum Schutz des reCAPTCHA-Schlüssels für Ihre Domain und Subdomains müssen Sie den Ein/Aus-Button Domainbestätigung deaktivieren deaktivieren.

        Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es keine Einschränkungen für die Website gibt. Jeder kann auf Ihren reCAPTCHA-Schlüssel zugreifen und ihn verwenden.

      3. 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.

          Für Websites ist der reCAPTCHA-Schlüssel eindeutig 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 (z. B. subdomain.examplepetstore.com) nicht angeben. Es kann bis zu 30 Minuten dauern, bis Änderungen an der Domainliste wirksam werden.

      4. Aktivieren Sie unter Zusätzliche Einstellungen die Ein/Aus-Schaltfläche Wird dieser Schlüssel in einer Web Application Firewall (WAF) bereitgestellt?.
      5. Wählen Sie unter Funktion die Option Sitzung aus.

      6. Optional:Aktivieren Sie Domainbestätigung deaktivieren.

        Das Deaktivieren der Domainbestätigung ist ein Sicherheitsrisiko, da es keine Einschränkungen für die Website gibt. Jeder kann auf Ihren reCAPTCHA-Schlüssel zugreifen und ihn verwenden.

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

    gcloud

    Verwenden Sie zum Erstellen von reCAPTCHA-Schlüsseln den Befehl gcloud recaptcha keys create.

    Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

    • INTEGRATION_TYPE: Art der Integration. Geben Sie score an.
    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • 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 keine Einschränkungen für die Website gibt. Jeder kann auf Ihren reCAPTCHA-Schlüssel zugreifen und ihn verwenden.

    • WAF_FEATURE: Name des WAF-Features. Geben Sie session-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Cloud Armor an.

    Führen Sie den Befehl gcloud recaptcha keys create aus:

    Linux, macOS oder 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

    Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.

    REST

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

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • INTEGRATION_TYPE: Art der Integration. Geben Sie score an.
    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • 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 keine Einschränkungen für die Website gibt. Jeder kann auf Ihren reCAPTCHA-Schlüssel zugreifen und ihn verwenden.

    • WAF_FEATURE: Name des WAF-Features. Geben Sie session-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Cloud Armor an.
    • DEFAULT_SCORE_THRESHOLD: Bei richtlinienbasierten Schlüssel für Aufgaben wird damit der universelle Schwellenwert für Aufgaben für den Schlüssel definiert, wenn kein benutzerdefinierter Schwellenwert für die Punktzahl definiert ist. Diese Funktion befindet sich in der Vorschau.
    • ACTION_SCORE_THRESHOLDS: Bei richtlinienbasierten Challenge-Schlüsseln wird hier die Aktion und der entsprechende Grenzwert zwischen 0,0 und 1,0 angegeben. Beispiel: login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. Diese Funktion befindet sich in der Vorschau.

    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": "INTEGRATION_TYPE"
       }
       
    }
    

    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": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

  2. Fügen Sie dem reCAPTCHA-JavaScript den Sitzungstoken-Schlüssel 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_KEY&waf=session" async defer></script>
     <body></body>
    </head>
    </html>

reCAPTCHA-Aufgabenseite implementieren

Wenn Sie eine reCAPTCHA-Aufgabenseite implementieren, leitet reCAPTCHA zu einer Interstitial-Seite weiter, auf der ermittelt wird, ob einem Nutzer eine CAPTCHA-Aufgabe angezeigt werden muss. Daher sind CAPTCHA-Tests möglicherweise nicht für alle Nutzer sichtbar.

Wenn Sie eine reCAPTCHA-Aufgabenseite implementieren möchten, erstellen Sie einen Aufgabenseitenschlüssel für Ihre Website.

Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Cloud Fraud Defense auf.

    Zu Google Cloud Fraud Defense

  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. Wählen Sie den Tab Keys aus.
  4. Klicken Sie auf Schlüssel erstellen.
  5. Geben Sie im Feld Anzeigename einen Anzeigenamen für den Schlüssel ein.
  6. Führen Sie je nach Plattform, für die Sie reCAPTCHA-Schlüssel für WAF erstellen möchten, die entsprechende Aktion aus:
    1. Wählen Sie als Anwendungstyp die Option Web aus.
    2. Aktivieren Sie unter Zusätzliche Einstellungen die Ein/Aus-Schaltfläche Wird dieser Schlüssel in einer Web Application Firewall (WAF) bereitgestellt?.
    3. Wählen Sie in den Funktionsoptionen die Option Challenge aus.

    4. Aktivieren Sie Domainbestätigung deaktivieren.

      Wenn Sie die Domainbestätigung für Schlüssel für Abfrageseiten deaktivieren, wird die Domain von Cloud Armor bestätigt.

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

gcloud

Verwenden Sie zum Erstellen von reCAPTCHA-Schlüsseln den Befehl gcloud recaptcha keys create.

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • INTEGRATION_TYPE: Art der Integration. Geben Sie invisible an.
  • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
  • DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie --allow-all-domains an.
  • WAF_FEATURE: Name des WAF-Features. Geben Sie challenge-page an.
  • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Cloud Armor an.

Führen Sie den Befehl gcloud recaptcha keys create aus:

Linux, macOS oder 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

Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.

REST

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

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • INTEGRATION_TYPE: Art der Integration. Geben Sie invisible an.
  • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
  • DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie --allow-all-domains an.
  • WAF_FEATURE: Name des WAF-Features. Geben Sie challenge-page an.
  • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie CA für Cloud Armor an.
  • DEFAULT_SCORE_THRESHOLD: Bei richtlinienbasierten Schlüssel für Aufgaben wird damit der universelle Schwellenwert für Aufgaben für den Schlüssel definiert, wenn kein benutzerdefinierter Schwellenwert für die Punktzahl definiert ist. Diese Funktion befindet sich in der Vorschau.
  • ACTION_SCORE_THRESHOLDS: Bei richtlinienbasierten Challenge-Schlüsseln wird hier die Aktion und der entsprechende Grenzwert zwischen 0,0 und 1,0 angegeben. Beispiel: login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. Diese Funktion befindet sich in der Vorschau.

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": "INTEGRATION_TYPE"
   }
   
}

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": "DISPLAY_NAME,

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

  "integrationType": "INVISIBLE",
 

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

  "wafFeature": "CHALLENGE_PAGE"
  

}
}

Cloud Armor-Sicherheitsrichtlinien konfigurieren

Nachdem Sie die Funktionen von reCAPTCHA for Cloud Armor implementiert haben, müssen Sie Cloud Armor-Sicherheitsrichtlinien für die Bot-Verwaltung konfigurieren.

Wenn Sie eine reCAPTCHA-Aufgabenseite implementiert haben, müssen Sie Folgendes tun:

  1. Verknüpfen Sie den Schlüssel der Aufgabenseite mit Ihrer Sicherheitsrichtlinie.
  2. Sie müssen eine Sicherheitsrichtlinienregel konfigurieren, um eine Anfrage für die reCAPTCHA-Bewertung weiterzuleiten.

Wenn Sie reCAPTCHA-Aktionstokens oder ‑Sitzungstokens implementiert haben, müssen Sie eine Sicherheitsrichtlinienregel konfigurieren, die reCAPTCHA-Tokens auswertet.

Bevor Sie die Cloud Armor-Sicherheitsrichtlinien konfigurieren, sollten Sie sich mit den reCAPTCHA-Tokenattributen für Cloud Armor vertraut machen.

Informationen zum Konfigurieren von Cloud Armor-Sicherheitsrichtlinien und zum Verwenden der reCAPTCHA-Schlüssel für WAF mit Ihren Sicherheitsrichtlinien finden Sie unter Regeln für die Bot-Verwaltung konfigurieren.

reCAPTCHA-Werte abrufen

Für reCAPTCHA-Aktions- und Sitzungstokens können Sie reCAPTCHA-Scores aus dem X-Recaptcha-Wafdata-Header abrufen. Anhand dieser Werte können Sie benutzerdefinierte Aktionen konfigurieren, die für Nutzeranfragen erforderlich sind.

Das folgende Beispiel zeigt einen X-Recaptcha-Wafdata-Header:

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

Sie können reCAPTCHA-Bewertungen auch in den Google Cloud Armor-Logs ansehen.

Nächste Schritte