reCAPTCHA for WAF in Akamai einbinden

In diesem Dokument erfahren Sie, wie Sie reCAPTCHA for WAF in Akamai einbinden.

Um die Integration abzuschließen, müssen Sie mindestens eine Funktion von reCAPTCHA for WAF implementieren, reCAPTCHA-Firewallrichtlinien erstellen und Akamai einbinden, indem Sie einen Akamai EdgeWorkers-Dienst erstellen und konfigurieren.

Hinweis

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

    Notieren Sie sich die Google Cloud Projekt-ID für später.

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the reCAPTCHA Enterprise API.

    Enable the API

  4. Erstellen Sie einen API-Schlüssel für die Authentifizierung:

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

      Zu den Anmeldedaten

    2. Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.
    3. Notieren Sie sich den API-Schlüssel für später.

  5. Planen Sie, wie Sie die Funktionen von reCAPTCHA for WAF zum Schutz Ihrer Website implementieren möchten.

    1. Wählen Sie eine oder mehrere WAF-Funktionen aus, die am besten zu Ihrem Anwendungsfall passen.
    2. Wählen Sie die Seiten aus, die Sie schützen möchten.
    3. Wählen Sie die WAF-Funktionen aus, die Sie auf den identifizierten Seiten implementieren möchten.
    4. Legen Sie die Bedingungen fest, unter denen der Nutzerzugriff verwaltet werden soll.
    5. Informationen zu den Komponenten und Attributen von reCAPTCHA-Firewallrichtlinien, die Ihnen beim Erstellen von reCAPTCHA-Firewallrichtlinien helfen Beispiele finden Sie unter Beispiele für reCAPTCHA-Firewallrichtlinien.
  6. Für die Akamai-Konfiguration müssen folgende Voraussetzungen erfüllt sein:

    1. Ein Akamai-Konto und eine Akamai-Property für Ihre Anwendung.

    2. Zugriff auf Akamai EdgeWorkers über den Akamai Marketplace

    3. Möglichkeit, EdgeWorkers zu erstellen.

  7. Laden Sie das reCAPTCHA-Paket für Akamai recaptcha_akamai_client_0.0.2.tgz herunter.

Funktionen von reCAPTCHA for WAF implementieren

Je nach Ihren Anforderungen können Sie eine oder mehrere Funktionen von reCAPTCHA for WAF in einer einzelnen Anwendung verwenden.

Wenn Sie mehr als eine Funktion 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-Abfrageseite verwenden möchten, müssen Sie einen Aktionstokenschlüssel und einen Schlüssel für die Abfrageseite erstellen und in Ihrer Anwendung verwenden.

action-token

reCAPTCHA muss auf Ihren Webseiten ausgeführt werden, um Aktionstokens zu generieren. Nachdem reCAPTCHA ein Aktionstoken generiert hat, hängen Sie das Token an einen vordefinierten Anfrageheader an, wo Sie Nutzeraktionen wie checkout schützen müssen. Aktionstokens sind standardmäßig 30 Minuten lang gültig, können aber je nach Traffic variieren. Sie müssen das Aktionstoken vor dem Ablauf des Tokens an einen vordefinierten Anfrageheader anhängen, damit Akamai die Tokenattribute auswerten kann.

So implementieren Sie ein reCAPTCHA-Aktionstoken:

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

    gcloud

    Verwenden Sie den Befehl gcloud recaptcha keys create, um reCAPTCHA-Schlüssel zu erstellen.

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

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • INTEGRATION_TYPE: Integrationstyp. 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 keine Einschränkungen für die Website gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem abgerufen und verwendet werden.

    • WAF_FEATURE: Name der WAF-Funktion. Geben Sie action-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie für Akamai akamai 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:

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • INTEGRATION_TYPE: Integrationstyp. 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 keine Einschränkungen für die Website gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem abgerufen und verwendet werden.

    • WAF_FEATURE: Name der WAF-Funktion. Geben Sie action-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie für Akamai akamai 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": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "akamai",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

    Notieren Sie sich den Schlüssel für das Aktionstoken zur späteren Verwendung.

  2. Integrieren Sie reCAPTCHA JavaScript mit dem von Ihnen erstellten Schlüssel für Aktionstokens in Ihre Webseiten. Eine Anleitung finden Sie im Dokument, das dem Integrationstyp Ihres Aktionstoken-Schlüssels 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 Anfrage-Header anzuhängen.

    Das folgende Beispielskript zeigt, wie die execute-Aktion 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_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>
      
      

session-token

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 Sitzungs-Tokenschlüssel auf mindestens einer Ihrer Webseiten, die der Endnutzer aufruft, bevor die Seite geschützt werden muss. Wenn Sie beispielsweise die Zahlungsseite schützen möchten, installieren Sie einen Sitzungstokenschlüssel auf der Startseite oder der Produktseite.

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

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

Installieren Sie Sitzungs-Tokens auf jeder Seite, die durch reCAPTCHA geschützt werden muss. Wir empfehlen, jede Seite mit reCAPTCHA zu schützen 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 Sitzungstokenschlüssel für Ihre Website.

    gcloud

    Verwenden Sie den Befehl gcloud recaptcha keys create, um reCAPTCHA-Schlüssel zu erstellen.

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

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • INTEGRATION_TYPE: Integrationstyp. 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 keine Einschränkungen für die Website gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem abgerufen und verwendet werden.

    • WAF_FEATURE: Name der WAF-Funktion. Geben Sie session-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie für Akamai akamai 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:

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • INTEGRATION_TYPE: Integrationstyp. 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 keine Einschränkungen für die Website gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem abgerufen und verwendet werden.

    • WAF_FEATURE: Name der WAF-Funktion. Geben Sie session-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie für Akamai akamai 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": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "akamai",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

    Notieren Sie sich den Sitzungstoken-Schlüssel für später.

    Wenn Sie das reCAPTCHA-JavaScript von Akamai einschleusen möchten, überspringen Sie den nächsten Schritt und konfigurieren Sie die Properties im Akamai Property Manager.

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

challenge-page

Wenn Sie eine reCAPTCHA-Abrufseite implementieren, wird der Nutzer von reCAPTCHA zu einer Zwischenseite weitergeleitet, auf der ermittelt wird, ob ihm eine CAPTCHA-Herausforderung angezeigt werden muss. Daher sind CAPTCHA-Herausforderungen möglicherweise nicht für alle Nutzer sichtbar.

So implementieren Sie eine reCAPTCHA-Abfrageseite:

  1. Erstellen Sie einen Schlüssel für die Bestätigungsseite für Ihre Website.

    gcloud

    Verwenden Sie den Befehl gcloud recaptcha keys create, um reCAPTCHA-Schlüssel zu erstellen.

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

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • INTEGRATION_TYPE: Integrationstyp. Geben Sie invisible an.
    • DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie --allow-all-domains an.
    • WAF_FEATURE: Name der WAF-Funktion. Geben Sie challenge-page an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie für Akamai akamai 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:

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • INTEGRATION_TYPE: Integrationstyp. Geben Sie invisible an.
    • DOMAIN_NAME: Domains oder Subdomains von Websites, die den Schlüssel verwenden dürfen. Geben Sie --allow-all-domains an.
    • WAF_FEATURE: Name der WAF-Funktion. Geben Sie challenge-page an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie für Akamai akamai 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": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
      "integrationType": "INVISIBLE",
     
    
    },
    "wafSettings": {
      "wafService": "akamai",
    
      "wafFeature": "CHALLENGE_PAGE"
      
    
    }
    }
    
    

    Notieren Sie sich den Schlüssel für die Challenge-Seite zur späteren Verwendung.

  2. Wenn Sie Nutzer zur reCAPTCHA-Abfrageseite weiterleiten und ein reCAPTCHA-Token erhalten möchten, erstellen Sie eine Firewall-Richtlinie mit der Aktion redirect auf geschützten Seiten.

Express

Wenn Sie den Express-Schutz für reCAPTCHA WAF implementieren möchten, erstellen Sie einen Expressschlüssel.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. gcloud

    Verwenden Sie den Befehl gcloud recaptcha keys create, um reCAPTCHA-Schlüssel zu erstellen.

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

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie für Akamai akamai an.

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

    Linux, macOS oder Cloud Shell

    gcloud recaptcha keys create \
    --express \
    --display-name=DISPLAY_NAME  \
    --waf-service=WAF_SERVICE

    Windows (PowerShell)

    gcloud recaptcha keys create `
    --express `
    --display-name=DISPLAY_NAME  `
    --waf-service=WAF_SERVICE

    Windows (cmd.exe)

    gcloud recaptcha keys create ^
    --express ^
    --display-name=DISPLAY_NAME  ^
    --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:

    • DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Websitename.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie für Akamai akamai 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",
      
    }
    

    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,
    
    },
    "wafSettings": {
      "wafService": "akamai",
    
      
    
    }
    }
    
    

    Notieren Sie sich den Expressschlüssel für später.

Integration mit Akamai

Für die Einbindung in Akamai müssen Sie den EdgeWorker-Dienst einrichten und Eigenschaften für den EdgeWorker-Dienst im Property Manager konfigurieren.

EdgeWorker-Dienst einrichten

  1. Erstellen Sie im Akamai Control Center eine EdgeWorker-ID und weisen Sie der erstellten EdgeWorker-ID die Rolle „Bearbeiter“ zu.

  2. Wenn Sie das reCAPTCHA-Paket für Akamai hochladen möchten, erstellen Sie eine EdgeWorker-Version mit dem heruntergeladenen reCAPTCHA-Paket.

  3. Aktivieren Sie die EdgeWorker-Version.

Unterkünfte im Property Manager konfigurieren

  1. Property Manager starten

  2. Wählen Sie die Akamai-Property aus, die Sie schützen möchten, und erstellen Sie eine neue Version der Property.

  3. Erstellen Sie je nach den implementierten WAF-Funktionen globale benutzerdefinierte Variablen. Die globalen Variablen, die Sie in Properties festlegen, beginnen mit dem Präfix PMUSER_.

    In der folgenden Tabelle sind die Variablen aufgeführt, die Sie im Bereich „Property-Variablen“ erstellen und hinzufügen können:

    Variablenname Beschreibung Sicherheitseinstellung
    RECAPTCHAJSINSTALL reCAPTCHA-JavaScript einfügen URLs der Seiten, auf denen Akamai die reCAPTCHA API aufrufen soll, um den reCAPTCHA-Score zu bewerten und die in der Firewall-Richtlinie konfigurierte Aktion auszuführen. Geben Sie die Pfade als Globusmuster an und verwenden Sie ein Semikolon als Trennzeichen. Ausgeblendet
    RECAPTCHACHALLENGESITEKEY Schlüssel für die reCAPTCHA-Abfrageseite. Diese Variable ist erforderlich, wenn Sie Nutzer zur reCAPTCHA-Herausforderungsseite weiterleiten möchten. Ausgeblendet
    RECAPTCHAACTIONSITEKEY Der Schlüssel für das reCAPTCHA-Aktionstoken. Diese Variable ist erforderlich, wenn Sie zum Schutz Ihrer Seiten ein reCAPTCHA-Aktionstoken verwenden. Ausgeblendet
    RECAPTCHASESSIONSITEKEY reCAPTCHA-Sitzungstoken-Schlüssel. Diese Variable ist erforderlich, wenn Sie zum Schutz Ihrer Seiten reCAPTCHA-Sitzungstokens verwenden. Sie müssen diese Variable verwenden, wenn RECAPTCHAJSINSTALL für die Konfiguration von reCAPTCHA-JavaScript von Akamai festgelegt ist. Ausgeblendet
    RECAPTCHAEXPRESSSITEKEY reCAPTCHA Express-Schlüssel Diese Variable ist erforderlich, wenn Sie reCAPTCHA Express zum Schutz Ihrer Seiten verwenden. Ausgeblendet
    GCPPROJECTNUMBER

    Ihre Google Cloud Projekt-ID.

    Ausgeblendet
    GCPAPIKEY

    Der API-Schlüssel, den Sie für die Authentifizierung erstellt haben.

    Ausgeblendet

    Eine Anleitung finden Sie unter Variable erstellen.

  4. Wenn Sie den EdgeWorker-Dienst aktivieren möchten, fügen Sie eine Regel hinzu. Verwenden Sie dazu die leere Regelvorlage mit den folgenden Informationen:

    • Kriterien

      • Name: reCAPTCHA EdgeWorkers rule
      • Kriterien: Alle Übereinstimmen
        Wenn
        Pfad
        einem der folgenden
        /* entspricht

        Die matches one of-Kriterien müssen mit einem Superset der URLs übereinstimmen, die durch reCAPTCHA geschützt werden müssen. Der Pfad /* enthält alle Pfade. Sie können auch bestimmte Seiten hinzufügen.

      • Optional: Wenn Sie eine zusätzliche Bedingung hinzufügen möchten, um die Dateiendungen einzuschränken, verwenden Sie Folgendes:

        Wenn
        Dateiendung
        eines der folgenden Elemente ist:
        html

    • Verhalten

      • Aktivieren: An
      • Kennung: Your_EdgeWorker_ID
      • mPulse-Berichte aktivieren: Aus
  5. Wenn Sie den Aufruf vom EdgeWorker-Dienst an die reCAPTCHA createAssessment API weiterleiten möchten, fügen Sie mithilfe der leeren Regelvorlage eine neue Regel mit den folgenden Informationen hinzu:

    • Kriterien

      • Name: reCAPTCHA assessment rule
      • Kriterien: Alle Übereinstimmen
        Wenn
        Pfad
        einem der folgenden
        /v1/projects/*/assessments entspricht
    • Verhalten

      • Herkunftstyp: Your Origin
      • Hostname des Ursprungsservers: public-preview-recaptchaenterprise.googleapis.com
      • Host-Header weiterleiten: Benutzerdefinierter Wert
      • Benutzerdefinierter weiterleitender Hostheader: public-preview-recaptchaenterprise.googleapis.com
      • Hostname des Cache-Schlüssels: Hostname des Ursprungs
      • Unterstützt die GZIP-Komprimierung: Ja
      • True-Client-IP-Header senden: Ja
      • Name des Headers „True Client IP“: True-Client-IP
      • Clients zulassen, den True-Client-IP-Header festzulegen: Nein
      • Überprüfungseinstellungen: Plattformeinstellungen verwenden
      • SNI-TLS-Erweiterung verwenden: Ja
      • HTTP-Port: 80
      • HTTPS-Port: 443
  6. Optional: Wenn Sie den Aufruf vom EdgeWorker-Dienst an die reCAPTCHA-Herausforderungsseite weiterleiten möchten, fügen Sie eine neue Regel hinzu, um den Traffic mit den folgenden Informationen an die Herausforderungsseite weiterzuleiten:

    • Kriterien

      • Name: reCAPTCHA challenge page rule
      • Kriterien: Alle Übereinstimmen
        Wenn
        Pfad
        einem der folgenden
        /recaptcha/challengepage entspricht
    • Verhalten

      • Herkunftstyp: Your Origin
      • Hostname des Ursprungsservers: www.google.com
      • Host-Header weiterleiten: Benutzerdefinierter Wert
      • Benutzerdefinierter weiterleitender Hostheader: www.google.com
      • Hostname des Cache-Schlüssels: Hostname des Ursprungs
      • Unterstützt die GZIP-Komprimierung: Ja
      • True-Client-IP-Header senden: Ja
      • Name des Headers „True Client IP“: True-Client-IP
      • Clients zulassen, den True-Client-IP-Header festzulegen: Nein
      • Überprüfungseinstellungen: Plattformeinstellungen verwenden
      • SNI-TLS-Erweiterung verwenden: Ja
      • HTTP-Port: 80
      • HTTPS-Port: 443
  7. Aktivieren Sie die Änderungen:

    1. Aktivieren Sie die Änderungen im Staging.
    2. Testen Sie die Änderungen im Staging-System.
    3. Aktivieren Sie die Änderungen in der Produktion.

reCAPTCHA-Firewallrichtlinien erstellen

Sie müssen eine Firewallrichtlinie erstellen, in der Regeln für jede Seite festgelegt sind, die Sie auf Ihrer Website schützen möchten. Sie können Firewallrichtlinien mit einer oder mehreren reCAPTCHA for WAF-Funktionen erstellen.

Fügen Sie in Ihrer reCAPTCHA-Firewallrichtlinie Regeln in der Reihenfolge der gewünschten Priorität hinzu. Die erste Regel hat die höchste Priorität. Mit ReorderFirewallPoliciesRequest können Sie die Priorität auch neu anordnen. Wenn für eine eingehende Anfrage eine Richtlinienbedingung für den angegebenen Pfad erfüllt ist, implementiert Ihr WAF-Anbieter die definierte Aktion und die nachfolgenden Regeln werden nicht ausgewertet.

  1. Gehen Sie je nach ausgewählten Funktionen so vor:
    • Geben Sie den Pfad an, den Sie schützen möchten.
    • Geben Sie die Bedingungen an, unter denen der Zugriff zugelassen, umgeleitet oder blockiert werden soll.
    • Priorisieren Sie die Regeln.
  2. Informationen zu den Komponenten von Firewallrichtlinien und ihren Attributen
  3. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  4. Wenn Sie die gcloud CLI überschreiben möchten, um auf die öffentliche Vorabversion der reCAPTCHA API zuzugreifen, führen Sie den folgenden Befehl aus:
        gcloud config set api_endpoint_overrides/recaptchaenterprise https://public-preview-recaptchaenterprise.googleapis.com/
        
  5. Verwenden Sie den Befehl gcloud recaptcha firewall-policies create, um reCAPTCHA-Firewallrichtlinien zu erstellen:

    Fügen Sie in Ihrer reCAPTCHA-Firewallrichtlinie Regeln in der gewünschten Prioritätsreihenfolge hinzu. Sie müssen zuerst eine Regel mit der höchsten Priorität hinzufügen. Wenn für eine eingehende Anfrage eine Richtlinienbedingung für den angegebenen Pfad erfüllt ist, implementiert Ihr WAF-Anbieter die definierte Aktion und die nachfolgenden Regeln werden nicht ausgewertet. Standardmäßig ist der Zugriff erlaubt.

       gcloud recaptcha firewall-policies create \
          --actions=ACTION \
          --condition=CONDITION \
          --description=DESCRIPTION \
          --path=PATH
      

    Geben Sie folgende Werte an:

    • ACTION: Die Aktionen, die Ihr WAF-Anbieter für die eingehende Anfrage ausführen muss. Er kann höchstens eine finale Aktion enthalten, d. h. eine Aktion, die eine Antwort erzwingt. Wählen Sie eine der folgenden Optionen aus:
      • allow: ermöglicht den Zugriff auf die angeforderte Seite. Diese Aktion ist endgültig.
      • block: den Zugriff auf die angeforderte Seite verweigert. Diese Aktion ist endgültig.
      • redirect: leitet die eingehende Nutzeranfrage an die reCAPTCHA-Abfrageseite weiter. Diese Aktion ist endgültig.
      • substitute: Bei einer betrügerischen Nutzeranfrage wird eine andere Seite als die angeforderte Seite ausgeliefert. Diese Aktion ist endgültig.
      • set_header: Hiermit wird ein benutzerdefinierter Header festgelegt und die eingehende Nutzeranfrage wird an das Backend weitergeleitet. Das Backend kann dann einen benutzerdefinierten Schutz auslösen. Dies ist keine abschließende Aktion.
    • CONDITION: Ein CEL-Bedingungsausdruck (Common Expression Language), der angibt, ob die reCAPTCHA-Firewallrichtlinie auf eine eingehende Nutzeranfrage angewendet wird. Wenn diese Bedingung zu „wahr“ ausgewertet wird und der angeforderte Pfad mit dem Pfadmuster übereinstimmt, werden die zugehörigen Aktionen vom WAF-Dienstanbieter ausgeführt. Der Bedingungsstring wird bei der Erstellung auf korrekte CEL-Syntax geprüft. Weitere Informationen zur Sprachdefinition finden Sie unter CEL-Sprachdefinition.
    • DESCRIPTION: Eine Beschreibung der Ziele der reCAPTCHA-Firewallrichtlinie. Die Beschreibung darf maximal 256 UTF-8-Zeichen lang sein.
    • PATH: Der Pfad, für den die reCAPTCHA-Firewallrichtlinie gilt. Es muss als Glob-Muster angegeben werden. Weitere Informationen zu glob finden Sie in der Manpage.

    Nach der erfolgreichen Ausführung des Befehls wird eine Ausgabe angezeigt, die in etwa so aussieht:

         Created [100].
       

    Im folgenden Beispiel wird eine reCAPTCHA-Firewallrichtlinie erstellt, um Traffic zu /example/page.html zu blockieren, wenn die Punktzahl unter 0,1 liegt.

       gcloud recaptcha firewall-policies create \
         --description="example policy" \
         --path="/example/page.html" \
         --condition="recaptcha.score < 0.1" \
         --actions="block"
       

Nächste Schritte