Integrare reCAPTCHA per WAF con Cloudflare

Questo documento mostra come integrare reCAPTCHA per WAF con Cloudflare.

Per completare l'integrazione, devi implementare una o più funzionalità di reCAPTCHA per WAF, creare criteri firewall reCAPTCHA e integrare Cloudflare eseguendo il deployment e la configurazione di un'applicazione serverless Cloudflare Worker.

Prima di iniziare

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

    Go to project selector

    Registra l' Google Cloud ID progetto per un utilizzo successivo.

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

  3. Enable the reCAPTCHA Enterprise API.

    Enable the API

  4. Crea una chiave API per l'autenticazione:

    1. Nella console Google Cloud , vai alla pagina Credenziali.

      Vai a credenziali

    2. Fai clic su Crea credenziali e poi seleziona Chiave API.
    3. Registra la chiave API per utilizzarla in un secondo momento.

  5. Pianifica come implementare le funzionalità di reCAPTCHA per WAF per proteggere il tuo sito web.

    1. Scegli una o più funzionalità WAF che corrispondono meglio al tuo caso d'uso.
    2. Identifica le pagine che vuoi proteggere.
    3. Scegli il tipo di funzionalità WAF che vuoi implementare nelle pagine identificate.
    4. Identifica le condizioni per gestire l'accesso degli utenti.
    5. Comprendi i componenti dei criteri del firewall reCAPTCHA e i relativi attributi che ti aiutano a creare criteri del firewall reCAPTCHA. Per visualizzare alcuni esempi, consulta Esempi di criteri firewall reCAPTCHA.
  6. Crea o scegli un account Cloudflare con funzionalità Cloudflare Worker.

  7. Crea o scegli un sito web Cloudflare.

  8. Scarica il pacchetto reCAPTCHA per Cloudflare recaptcha_cloudflare_client_0.0.2.tar.gz.

Implementare le funzionalità di reCAPTCHA per WAF

A seconda dei tuoi requisiti, puoi utilizzare una o più funzionalità di reCAPTCHA per WAF in una singola applicazione.

Se vuoi utilizzare più di una funzionalità, devi creare una chiave reCAPTCHA per ciascuna di queste funzionalità e utilizzarle nella tua applicazione. Ad esempio, se vuoi utilizzare i token di azione reCAPTCHA e la pagina di verifica reCAPTCHA, devi creare una chiave token di azione e una chiave pagina di verifica e utilizzarle nella tua applicazione.

action-token

Per generare token di azione, devi aver eseguito reCAPTCHA nelle tue pagine web. Dopo che reCAPTCHA genera un token di azione, lo colleghi a un'intestazione della richiesta predefinita ovunque tu debba proteggere un'azione dell'utente, ad esempio checkout. Per impostazione predefinita, i token di azione sono validi per 30 minuti, ma possono variare a seconda del traffico. Devi allegare il token di azione a un'intestazione della richiesta predefinita prima della scadenza del token, in modo che Cloudflare possa valutare gli attributi del token.

Per implementare un token di azione reCAPTCHA:

  1. Crea una chiave per token di azione per il tuo sito web.

    gcloud

    Per creare chiavi reCAPTCHA, utilizza il comando gcloud recaptcha keys create.

    Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

    • DISPLAY_NAME: il nome della chiave. In genere il nome di un sito.
    • INTEGRATION_TYPE: Tipo di integrazione. Specifica score o checkbox.
    • DOMAIN_NAME: i domini o i sottodomini dei siti web autorizzati a utilizzare la chiave.

      Specifica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disattivare la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non ci sono restrizioni sul sito, quindi chiunque può accedere e utilizzare la chiave reCAPTCHA.

    • WAF_FEATURE: il nome della funzionalità WAF. Specifica action-token.
    • WAF_SERVICE: Nome del fornitore di servizi WAF. Specifica cloudflare per Cloudflare.

    Esegui il comando gcloud recaptcha keys create:

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

    La risposta contiene la chiave reCAPTCHA appena creata.

    REST

    Per informazioni di riferimento sull'API relative ai tipi di chiavi e di integrazione, vedi Key e Integration type.

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • DISPLAY_NAME: il nome della chiave. In genere il nome di un sito.
    • INTEGRATION_TYPE: Tipo di integrazione. Specifica score o checkbox.
    • DOMAIN_NAME: i domini o i sottodomini dei siti web autorizzati a utilizzare la chiave.

      Specifica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disattivare la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non ci sono restrizioni sul sito, quindi chiunque può accedere e utilizzare la chiave reCAPTCHA.

    • WAF_FEATURE: il nome della funzionalità WAF. Specifica action-token.
    • WAF_SERVICE: Nome del fornitore di servizi WAF. Specifica cloudflare per Cloudflare.

    Metodo HTTP e URL:

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

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una di queste opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    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

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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

    Dovresti ricevere una risposta JSON simile alla seguente:

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

    Registra la chiave del token di azione per utilizzarla in un secondo momento.

  2. Integra JavaScript reCAPTCHA nelle tue pagine web con la chiave del token di azione che hai creato. Per istruzioni, consulta il documento corrispondente al tipo di integrazione della chiave del token di azione.
  3. Dopo aver ricevuto il token da reCAPTCHA, allegalo a un'intestazione della richiesta predefinita nel seguente formato:
     X-Recaptcha-Token: value-of-your-action-token
    

    Puoi utilizzare linguaggi come XHR, Ajax o Fetch API per allegare il token a un'intestazione di richiesta predefinita.

    Il seguente script di esempio mostra come proteggere l'azione execute e allegare il token a un'intestazione della richiesta predefinita utilizzando JavaScript + XHR:

      
      <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

Dopo la valutazione, il codice JavaScript reCAPTCHA imposta un token di sessione reCAPTCHA come cookie nel browser dell'utente finale. Il browser dell'utente finale allega il cookie e lo aggiorna finché JavaScript reCAPTCHA rimane attivo.

Per fornire un token di sessione come cookie, installa una chiave del token di sessione in almeno una delle tue pagine web che l'utente finale visita prima della pagina da proteggere. Ad esempio, se vuoi proteggere la pagina di pagamento, installa una chiave del token di sessione nella home page o nella pagina di prodotto.

Puoi includere il codice JavaScript di reCAPTCHA nelle tue pagine web configurando il file wrangler.toml durante l'installazione del pacchetto reCAPTCHA per Cloudflare oppure installare la chiave di sessione nelle tue pagine web. L'inclusione di reCAPTCHA JavaScript da Cloudflare integra reCAPTCHA utilizzando la chiave del token di sessione senza la necessità di installare manualmente le chiavi nelle tue pagine web.

Puoi utilizzare questo cookie per proteggere le richieste successive e i caricamenti di pagina dell'utente finale su un dominio specifico. I token di sessione sono validi per 30 minuti per impostazione predefinita. Tuttavia, se l'utente finale rimane sulla pagina in cui hai implementato il token di sessione, reCAPTCHA aggiorna periodicamente il token di sessione per impedirne la scadenza.

Installa i token di sessione in ogni pagina che deve essere protetta da reCAPTCHA. Ti consigliamo di proteggere ogni pagina con reCAPTCHA e di utilizzare le regole di Google Cloud Armor per applicare l'accesso a tutte le pagine, ad eccezione della prima pagina che gli utenti finali visitano.

Di seguito è riportato un esempio di token di sessione reCAPTCHA:
   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

Per implementare un token di sessione reCAPTCHA:

  1. Crea una chiave per token di sessione per il tuo sito web.

    gcloud

    Per creare chiavi reCAPTCHA, utilizza il comando gcloud recaptcha keys create.

    Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

    • DISPLAY_NAME: il nome della chiave. In genere il nome di un sito.
    • INTEGRATION_TYPE: Tipo di integrazione. Specifica score.
    • DOMAIN_NAME: i domini o i sottodomini dei siti web autorizzati a utilizzare la chiave.

      Specifica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disattivare la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non ci sono restrizioni sul sito, quindi chiunque può accedere e utilizzare la chiave reCAPTCHA.

    • WAF_FEATURE: il nome della funzionalità WAF. Specifica session-token.
    • WAF_SERVICE: Nome del fornitore di servizi WAF. Specifica cloudflare per Cloudflare.

    Esegui il comando gcloud recaptcha keys create:

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

    La risposta contiene la chiave reCAPTCHA appena creata.

    REST

    Per informazioni di riferimento sull'API relative ai tipi di chiavi e di integrazione, vedi Key e Integration type.

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • DISPLAY_NAME: il nome della chiave. In genere il nome di un sito.
    • INTEGRATION_TYPE: Tipo di integrazione. Specifica score.
    • DOMAIN_NAME: i domini o i sottodomini dei siti web autorizzati a utilizzare la chiave.

      Specifica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disattivare la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non ci sono restrizioni sul sito, quindi chiunque può accedere e utilizzare la chiave reCAPTCHA.

    • WAF_FEATURE: il nome della funzionalità WAF. Specifica session-token.
    • WAF_SERVICE: Nome del fornitore di servizi WAF. Specifica cloudflare per Cloudflare.

    Metodo HTTP e URL:

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

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una di queste opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    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

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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

    Dovresti ricevere una risposta JSON simile alla seguente:

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

    Registra la chiave del token di sessione per utilizzarla in un secondo momento.

    Se vuoi inserire il JavaScript di reCAPTCHA da Cloudflare, salta il passaggio successivo e configura wranger.toml.

  2. Aggiungi la chiave session-token e waf=session al codice JavaScript di reCAPTCHA.

    Il seguente script di esempio mostra come implementare un token di sessione in una pagina web:

    <!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

Quando implementi una pagina di verifica reCAPTCHA, reCAPTCHA reindirizza a una pagina interstiziale in cui determina se è necessario mostrare una verifica CAPTCHA a un utente. Pertanto, i test CAPTCHA potrebbero non essere visibili a tutti gli utenti.

Per implementare una pagina di verifica reCAPTCHA:

  1. Crea una chiave della pagina di verifica per il tuo sito web.

    gcloud

    Per creare chiavi reCAPTCHA, utilizza il comando gcloud recaptcha keys create.

    Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

    • DISPLAY_NAME: il nome della chiave. In genere il nome di un sito.
    • INTEGRATION_TYPE: Tipo di integrazione. Specifica invisible.
    • DOMAIN_NAME: i domini o i sottodomini dei siti web autorizzati a utilizzare la chiave. Specifica --allow-all-domains.
    • WAF_FEATURE: il nome della funzionalità WAF. Specifica challenge-page.
    • WAF_SERVICE: Nome del fornitore di servizi WAF. Specifica cloudflare per Cloudflare.

    Esegui il comando gcloud recaptcha keys create:

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

    La risposta contiene la chiave reCAPTCHA appena creata.

    REST

    Per informazioni di riferimento sull'API relative ai tipi di chiavi e di integrazione, vedi Key e Integration type.

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • DISPLAY_NAME: il nome della chiave. In genere il nome di un sito.
    • INTEGRATION_TYPE: Tipo di integrazione. Specifica invisible.
    • DOMAIN_NAME: i domini o i sottodomini dei siti web autorizzati a utilizzare la chiave. Specifica --allow-all-domains.
    • WAF_FEATURE: il nome della funzionalità WAF. Specifica challenge-page.
    • WAF_SERVICE: Nome del fornitore di servizi WAF. Specifica cloudflare per Cloudflare.

    Metodo HTTP e URL:

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

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una di queste opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    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

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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

    Dovresti ricevere una risposta JSON simile alla seguente:

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

    Registra la chiave della pagina della sfida per utilizzarla in un secondo momento.

  2. Per reindirizzare gli utenti alla pagina della richiesta di verifica reCAPTCHA e ricevere un token reCAPTCHA, crea una policy firewall con l'azione redirect sulle pagine protette.

Express

Per implementare reCAPTCHA express, crea una chiave express.

  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

    Per creare chiavi reCAPTCHA, utilizza il comando gcloud recaptcha keys create.

    Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

    • DISPLAY_NAME: il nome della chiave. In genere il nome di un sito.
    • WAF_SERVICE: Nome del fornitore di servizi WAF. Specifica cloudflare per Cloudflare.

    Esegui il comando gcloud recaptcha keys create:

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

    La risposta contiene la chiave reCAPTCHA appena creata.

    REST

    Per informazioni di riferimento sull'API relative ai tipi di chiavi e di integrazione, vedi Key e Integration type.

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • DISPLAY_NAME: il nome della chiave. In genere il nome di un sito.
    • WAF_SERVICE: Nome del fornitore di servizi WAF. Specifica cloudflare per Cloudflare.

    Metodo HTTP e URL:

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

    Corpo JSON della richiesta:

    
    {
      "displayName": "DISPLAY_NAME",
       'wafSettings': "  {
           "wafService": "WAF_SERVICE",
      
    }
    

    Per inviare la richiesta, scegli una di queste opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    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

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    },
    "wafSettings": {
      "wafService": "cloudflare",
    
      
    
    }
    }
    
    

    Registra la chiave rapida per utilizzarla in un secondo momento.

Integrazione con Cloudflare

Per utilizzare i criteri firewall reCAPTCHA, devi eseguire il deployment e configurare un'applicazione serverless Cloudflare Worker.

Prima di iniziare la procedura di integrazione, segui questi passaggi:

  1. Crea un CLOUDFLARE_API_TOKEN e scegli il modello Modifica Cloudflare Workers. Registra il token API per utilizzarlo in un secondo momento.

  2. Recupera l'ID account API Cloudflare e registralo per utilizzarlo in seguito.

Installa il pacchetto reCAPTCHA per Cloudflare

  1. Scarica e installa il pacchetto reCAPTCHA per Cloudflare:

    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. Installa il pacchetto wrangler:

       npm install -g wrangler
      
    3. Scarica il pacchetto reCAPTCHA per Cloudflare:

      wget --load-cookies /tmp/cookies.txt https://dl.google.com/recaptchaenterprise/cloudflare_client/releases/recaptcha_cloudflare_client_0.0.2.tar.gz -O recaptcha_cloudflare_client_0.0.2.tar.gz && rm -rf /tmp/cookies.txt
      
    4. Decomprimi il pacchetto reCAPTCHA per Cloudflare:

      tar -xvzf recaptcha_cloudflare_client_0.0.2.tar.gz
      
  2. Nel file wrangler.toml, configura le seguenti variabili nella sezione vars:

    • API_KEY: la chiave API Google Cloud che hai creato per l'autenticazione.
    • PROJECT_NUMBER: il tuo numero di progetto Google Cloud .
    • RECAPTCHA_EXPRESS_SITE_KEY: la chiave express se utilizzi reCAPTCHA express.
    • RECAPTCHA_SESSION_SITE_KEY: la chiave session-token se utilizzi session-token reCAPTCHA.
    • RECAPTCHA_ACTION_SITE_KEY: la chiave del token di azione se utilizzi il token di azione reCAPTCHA.
    • RECAPTCHA_CHALLENGE_SITE_KEY: la chiave della pagina di verifica se utilizzi la pagina di verifica reCAPTCHA.
    • RECAPTCHA_JS_INSTALL_PATH: URL delle pagine in cui vuoi che il worker Cloudflare installi il codice JavaScript reCAPTCHA utilizzando la chiave del token di sessione. Specifica i percorsi come pattern glob e utilizza ; come delimitatore. Questa opzione è disponibile solo per il token di sessione reCAPTCHA.
  3. Esegui il deployment dell'applicazione:

    wrangler deploy
    

Configura le route Cloudflare per l'applicazione Worker

  1. Accedi alla dashboard Cloudflare e seleziona il tuo account.
  2. Nel menu di navigazione, fai clic su Operai e pagine, quindi seleziona la tua applicazione Worker.
  3. Fai clic sulla scheda Attivatori e poi su Aggiungi percorso.
  4. Nella finestra di dialogo Aggiungi route, inserisci il percorso della pagina web da proteggere con reCAPTCHA, seleziona la zona appropriata e fai clic su Aggiungi route.

Passaggi successivi