reCAPTCHA WAF Express-Schutz einrichten

In diesem Dokument erfahren Sie, wie Sie reCAPTCHA WAF Express-Schutz (reCAPTCHA WAF Express) auf einem Anwendungsserver einrichten, ohne das reCAPTCHA JavaScript (Web) oder native mobile SDKs (iOS oder Android) zu integrieren.

reCAPTCHA WAF Express verwendet nur Backend-Signale, um einen reCAPTCHA-Risikowert zu generieren. Anhand dieses Risikowerts können Sie entscheiden, ob Sie die Anfrage verarbeiten, auf eine Challenge-Seite weiterleiten oder sie für eine spätere Analyse protokollieren möchten.

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 Ihre Google Cloud-Projekt-ID zur späteren Verwendung.

  2. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  3. reCAPTCHA Enterprise API aktivieren.

    Aktivieren Sie die API

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

    1. Wechseln Sie in der Google Cloud Console zur Seite Anmeldedaten.

      Zu den Anmeldedaten

    2. Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.

    3. Notieren Sie den API-Schlüssel zur späteren Verwendung.

reCAPTCHA-WAF-Expressschlüssel erstellen

Erstellen Sie einen reCAPTCHA WAF-Expressschlüssel, um den reCAPTCHA WAF-Expressschutz zu implementieren.

  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 zum Erstellen von reCAPTCHA-Schlüsseln den Befehl gcloud recaptcha keys create.

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

    • DISPLAY_NAME: Name des Schlüssels. In der Regel ein Websitename.
    • 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 --allow-all-domains an.
    • WAF_FEATURE: Name des WAF-Features. Geben Sie express an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters.

    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.

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

    • DISPLAY_NAME: Name des Schlüssels. In der Regel ein Websitename.
    • 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 --allow-all-domains an.
    • WAF_FEATURE: Name des WAF-Features. Geben Sie express an.
    • WAF_SERVICE: Name des WAF-Dienstanbieters.

    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 in etwa folgende JSON-Antwort erhalten:

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

Notieren Sie sich Ihre Express-Taste zur späteren Verwendung.

Bewertung erstellen

Erstellen Sie mit der Methode projects.assessments.create eine Bewertung, um eine Anfrage von Ihrem Anwendungsserver an reCAPTCHA Enterprise zu senden.

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

  • API_KEY: Der API-Schlüssel, den Sie für die Authentifizierung erstellt haben.
  • EXPRESS_KEY: reCAPTCHA-WAF-Expressschlüssel, den Sie für Ihre Anwendung erstellt haben.
  • USER_IP_ADDRESS: Die IP-Adresse in der Anfrage vom Gerät des Nutzers, die sich auf dieses Ereignis bezieht.
  • HEADER_INFO: Optional. Die HTTP-Header, die der Client an Ihren Anwendungsserver gesendet hat.
  • JA3_FINGERPRINT: Optional. JA3 ist ein MD5-Fingerabdruck bestimmter Felder des TLS-Client-Hello-Pakets. Weitere Informationen finden Sie unter JA3 – Eine Methode zur Profilerstellung für SSL/TLS-Clients.
  • URI_NAME: Optional. Der URI, auf den der Nutzer zugreift.
  • USER_AGENT: Optional. Der User-Agent, der in der Anfrage vom Gerät des Nutzers für dieses Ereignis vorhanden ist.

HTTP-Methode und URL:

POST https://public-preview-recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY

JSON-Text der Anfrage:


{
  "event": {
    "siteKey": "EXPRESS_KEY",
    "express": true,
    "userIpAddress": "USER_IP_ADDRESS",
    "headers": ["HEADER_INFO"],
    "ja3": "JA3_FINGERPRINT",
    "requestedUri": "URI_NAME",
    "userAgent": "USER_AGENT",
  }
}

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 "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://public-preview-recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY"

PowerShell

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

$headers = @{  }

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/123456789/assessments/abcdef1234000000",
  "event": {
    "token": "",
    "siteKey": "6L...",
    "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13816.55.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.86 Safari/537.36",
    "userIpAddress": "1.2.3.4",
    "express": true,
    "requestedUri": "https://example.com/",
    "firewallPolicyEvaluation": false
  },
  "riskAnalysis": {
    "score": 0.7,
    "reasons": []
  }
}

Nächste Schritte