reCAPTCHA for WAF in Fastly einbinden

In diesem Dokument erfahren Sie, wie Sie reCAPTCHA für WAF in Fastly einbinden.

Um die Integration abzuschließen, müssen Sie mindestens ein Feature von reCAPTCHA for WAF implementieren, reCAPTCHA-Firewallrichtlinien erstellen und die Integration in den Fastly-Compute-Dienst vornehmen.

Hinweise

  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 Ihre Google Cloud Projekt-ID für die spätere Verwendung.

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

  3. Enable the reCAPTCHA Enterprise API.

    Enable the API

  4. API-Schlüssel für die Authentifizierung erstellen:

    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 zur späteren Verwendung.

  5. Planen Sie, wie Sie die Funktionen von reCAPTCHA for WAF 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. Ermitteln Sie die Seiten, die Sie schützen möchten, und die Art der WAF-Funktion, die Sie auf diesen Seiten implementieren möchten.
    3. Legen Sie die Bedingungen fest, unter denen der Zugriff gewährt oder blockiert werden soll.
    4. 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. Laden Sie das reCAPTCHA-Paket für Fastly recaptcha_fastly_client_0.1.0.tar.gz herunter.

  7. Erstellen Sie ein Fastly-Konto mit Compute@Edge-Funktionen.

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

Aktionstoken

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 Fastly die Tokenattribute auswerten kann.

So implementieren Sie ein reCAPTCHA-Aktionstoken:

  1. Erstellen Sie einen Schlüssel für Aktionstokens 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 birgt ein Sicherheitsrisiko, da es keine Einschränkungen für die Website gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem aufgerufen und verwendet werden.

    • WAF_FEATURE: Name des WAF-Features. Geben Sie action-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie fastly für Fastly 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 birgt ein Sicherheitsrisiko, da es keine Einschränkungen für die Website gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem aufgerufen und verwendet werden.

    • WAF_FEATURE: Name des WAF-Features. Geben Sie action-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie fastly für Fastly 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": "fastly",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

    Notieren Sie sich den Aktions-Token-Schlüssel für die spätere Verwendung.

  2. Binden Sie das reCAPTCHA-JavaScript auf Ihren Webseiten mit dem von Ihnen erstellten Aktionstoken-Schlüssel ein. Eine Anleitung finden Sie im 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 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-Token-Schlüssel auf mindestens einer Ihrer Webseiten, die der Endnutzer aufruft, bevor die Seite geschützt werden muss. Wenn Sie beispielsweise die Kassenseite schützen möchten, installieren Sie einen Sitzungstoken-Schlüssel auf der Startseite oder der Produktseite.

Informationen zum Installieren von Sitzungstoken-Schlü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 Sitzungstoken-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 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 birgt ein Sicherheitsrisiko, da es keine Einschränkungen für die Website gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem aufgerufen und verwendet werden.

    • WAF_FEATURE: Name des WAF-Features. Geben Sie session-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie fastly für Fastly 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 birgt ein Sicherheitsrisiko, da es keine Einschränkungen für die Website gibt. Ihr reCAPTCHA-Schlüssel kann also von jedem aufgerufen und verwendet werden.

    • WAF_FEATURE: Name des WAF-Features. Geben Sie session-token an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie fastly für Fastly 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": "fastly",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

    Notieren Sie sich den Sitzungstoken-Schlüssel zur späteren Verwendung.

  2. Fügen Sie dem reCAPTCHA-JavaScript den Sitzungs-Token-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>

challenge-page

Wenn Sie eine reCAPTCHA-Herausforderungsseite implementieren, leitet reCAPTCHA zu einer Interstitials-Seite weiter, auf der ermittelt wird, ob einem Nutzer 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 Challenge-Seite 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 des WAF-Features. Geben Sie challenge-page an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie fastly für Fastly 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 des WAF-Features. Geben Sie challenge-page an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters. Geben Sie fastly für Fastly 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": "fastly",
    
      "wafFeature": "CHALLENGE_PAGE"
      
    
    }
    }
    
    

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

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

Express

Wenn Sie reCAPTCHA Express implementieren möchten, müssen Sie einen Express-Schlüssel erstellen.

  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 fastly für Fastly 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 fastly für Fastly 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": "fastly",
    
      
    
    }
    }
    
    

    Notieren Sie sich Ihren Express-Schlüssel für die spätere Verwendung.

Integration in den Fastly-Compute-Dienst

Wenn Sie die reCAPTCHA-Firewallrichtlinien verwenden möchten, müssen Sie einen Fastly-Compute-Dienst einrichten, um Anfragen abzufangen und zu verarbeiten.

Sie können entweder einen neuen Compute-Dienst erstellen und konfigurieren oder reCAPTCHA-Firewallrichtlinien in einen vorhandenen Fastly-Dienst einbinden, indem Sie sie verketten. Wenn Sie Chaining verwenden möchten, muss der reCAPTCHA-Dienst der am weitesten vorgelagerte Fastly-Dienst oder ein anderer Proxy sein, damit die IP-Adresse richtig erkannt wird.

Zum Erstellen eines Compute-Dienstes benötigen Sie die folgenden Informationen:

  • Ihr Domainname
  • reCAPTCHA-Paket für FASTLY im ZIP-Format
  • Ursprungsname für Ihren Backend-Server
  • Ursprungsname für den reCAPTCHA-Backend-Server: Recaptcha Enterprise
  • Ursprungsname für den Google-Backend-Server: Google
  • Ihr API-Schlüssel, den Sie für die Authentifizierung erstellt haben
  • Ihre Google Cloud Projekt-ID
  • Ihre reCAPTCHA-Schlüssel, die Sie für Ihre WAF-Funktionen erstellt haben

So richten Sie einen Fastly-Dienst mit reCAPTCHA-Firewallrichtlinien ein:

  1. Melden Sie sich bei Fastly an.
  2. Folgen Sie der Anleitung unter Neuen Compute-Dienst erstellen, um einen Compute-Dienst zu erstellen.

    Gehen Sie beim Erstellen eines Compute-Dienstes so vor:

    • Geben Sie zum Erstellen eines Ursprungs für den reCAPTCHA-Backend-Server die folgenden Werte an:

      • Name des Ursprungs = Recaptcha Enterprise
      • IP-Adresse (oder Hostname) Ihres Ursprungsservers = public-preview-recaptchaenterprise.googleapis.com
    • Geben Sie die folgenden Werte an, um einen Ursprung für einen Google-Backend-Server zu erstellen:

      • Name des Absenders = Google
      • IP-Adresse (oder Hostname) Ihres Ursprungsservers = www.google.com:443
    • Geben Sie die folgenden Werte an, um einen Ursprung für Ihren Back-End-Server zu erstellen:

      • Name des Ursprungs: Ein beliebiger aussagekräftiger Name für Ihren Backend-Server.
      • IP-Adresse (oder Hostname) Ihres Ursprungsservers = Hostname für Ihren Backend-Server.
    • Laden Sie das reCAPTCHA-Paket für Fastly recaptcha_fastly_client_0.1.0.tar.gz hoch.

    • Erstellen Sie einen neuen ConfigStore mit dem Namen recaptcha und fügen Sie die folgenden Schlüssel/Wert-Paare hinzu:

      Schlüssel Wert
      api_key Der API-Schlüssel, den Sie für die Authentifizierung erstellt haben.
      project_number Ihre Google Cloud Projekt-ID.
      action_site_key reCAPTCHA WAF-Aktionstoken-Schlüssel. Dieser Schlüssel ist erforderlich, wenn Sie Aktionstokens zum Schutz Ihrer Seiten verwenden.
      session_site_key reCAPTCHA WAF-Sitzungstoken-Schlüssel. Dieser Schlüssel ist erforderlich, wenn Sie Sitzungstokens zum Schutz Ihrer Seiten verwenden.
      challengepage_site_key Schlüssel für die reCAPTCHA WAF-Abfrageseite. Dieser Schlüssel ist erforderlich, wenn Sie die reCAPTCHA-Abfrageseite zum Schutz Ihrer Seiten verwenden.
      express_site_key reCAPTCHA-Express-Schlüssel Dieser Schlüssel ist erforderlich, wenn Sie reCAPTCHA Express zum Schutz Ihrer Seiten verwenden.
      recaptcha_js_install_path URLs der Seiten, auf denen das reCAPTCHA WAF-Plug-in das reCAPTCHA-JavaScript mit dem Sitzungstoken-Schlüssel installieren soll. Geben Sie die Pfade als [Glob-Muster](https://man7.org/linux/man-pages/man7/glob.7.html) an und verwenden Sie `;` als Trennzeichen. Diese Option ist nur für reCAPTCHA-Sitzungstokens verfügbar.

Nächste Schritte