Questo documento mostra come integrare reCAPTCHA per WAF con Akamai.
Per completare l'integrazione, devi implementare una o più funzionalità di reCAPTCHA per WAF, creare criteri di firewall reCAPTCHA e integrare Akamai creando e configurando il servizio Akamai EdgeWorkers.
Prima di iniziare
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Registra l'ID progetto Google Cloud per utilizzarlo in un secondo momento.Make sure that billing is enabled for your Google Cloud project.
Enable the reCAPTCHA Enterprise API.
Crea una chiave API per l'autenticazione:
Nella console Google Cloud, vai alla pagina Credenziali. - Fai clic su Crea credenziali e poi seleziona Chiave API.
- Prendi nota della chiave API per utilizzarla in un secondo momento.
Pianifica come implementare le funzionalità di reCAPTCHA per WAF per proteggere il tuo sito web.
- Scegli una o più funzionalità WAF che corrispondono meglio al tuo caso d'uso.
- Identifica le pagine che vuoi proteggere.
- Scegli il tipo di funzionalità WAF da implementare sulle pagine identificate.
- Identifica le condizioni per gestire l'accesso degli utenti.
- Scopri i componenti dei criteri del firewall reCAPTCHA e i relativi attributi che ti aiutano a creare criteri del firewall reCAPTCHA. Per alcuni esempi, consulta Esempi di criteri firewall di reCAPTCHA.
Per la configurazione di Akamai, assicurati di disporre di quanto segue:
Un account Akamai e una proprietà Akamai per la tua applicazione.
Accedi ad EdgeWorkers di Akamai dal marketplace Akamai.
Possibilità di creare EdgeWorker.
Scarica il pacchetto reCAPTCHA per Akamai
recaptcha_akamai_client_0.0.2.tgz
.
Implementare le funzionalità di reCAPTCHA per WAF
A seconda dei tuoi requisiti, puoi utilizzare una o più funzionalità di reCAPTCHA per WAF in un'unica 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 per i token di azione e una chiave per la pagina di verifica e utilizzarle nella tua applicazione.
action-token
Per generare token di azione, devi avere reCAPTCHA in esecuzione nelle tue pagine web.
Dopo che reCAPTCHA ha generato un token di azione, devi associarlo a un'intestazione di richiesta predefinita ogni volta che devi proteggere qualsiasi azione dell'utente, ad esempio checkout
. Per impostazione predefinita, gli action token sono validi per 30 minuti, ma possono variare in base al traffico.
Devi allegare il token di azione a un'intestazione di richiesta predefinita prima della scadenza del token, in modo che Akamai possa valutare gli attributi del token.
Per implementare un token di azione reCAPTCHA:
Crea una chiave del token di azione per il tuo sito web.
gcloud
Per creare le 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
ocheckbox
. - DOMAIN_NAME: domini o 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 comporta un rischio per la sicurezza perché non ci sono limitazioni sul sito, pertanto chiunque può accedere alla chiave reCAPTCHA e utilizzarla.
- WAF_FEATURE: il nome della funzionalità WAF.
Specifica
action-token
. - WAF_SERVICE: il nome del fornitore di servizi WAF.
Specifica
akamai
per Akamai.
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 dell'API sui tipi di token e sui tipi di integrazione, consulta Token e Tipo di integrazione.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
ocheckbox
. - DOMAIN_NAME: domini o 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 comporta un rischio per la sicurezza perché non ci sono limitazioni sul sito, pertanto chiunque può accedere alla chiave reCAPTCHA e utilizzarla.
- WAF_FEATURE: il nome della funzionalità WAF.
Specifica
action-token
. - WAF_SERVICE: il nome del fornitore di servizi WAF.
Specifica
akamai
per Akamai.
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 delle seguenti 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 ContentDovresti 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": "akamai", "wafFeature": "ACTION_TOKEN" } }
Prendi nota della chiave del token di azione per utilizzarla in un secondo momento.
-
Integra il codice JavaScript di reCAPTCHA nelle tue pagine web con la chiave action-token che hai creato. Per le istruzioni, consulta il documento corrispondente al tipo di integrazione della chiave del token di azione.
- Per il tipo di integrazione
SCORE
, consulta Integrare le chiavi basate su punteggi con il frontend. - Per il tipo di integrazione
CHECKBOX
, consulta Eseguire il rendering del widget reCAPTCHA sul frontend.
- Per il tipo di integrazione
-
Dopo aver ricevuto il token da reCAPTCHA, allegalo a un 'intestazione di richiesta predefinita nel seguente formato:
X-Recaptcha-Token: value-of-your-action-token
Puoi utilizzare linguaggi come XHR, Ajax o l'API Fetch per allegare il token a un'intestazione di richiesta predefinita.
Lo script di esempio seguente mostra come proteggere l'azione
execute
e allegare il token a un'intestazione di 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
Il codice JavaScript di reCAPTCHA imposta un token di sessione reCAPTCHA come cookie sul browser dell'utente finale dopo la valutazione. Il browser dell'utente finale allega il cookie e lo aggiorna finché il JavaScript di reCAPCHA rimane attivo.
Per fornire un token sessione come cookie, installa una chiave token sessione su almeno una delle tue pagine web che l'utente finale visita prima della pagina che deve essere protetta. Ad esempio, se vuoi proteggere la pagina di pagamento, installa una chiave di token di sessione nella home page o nella pagina del prodotto.
Per scoprire come installare le chiavi con token di sessione nelle tue pagine web, consulta Integrare le chiavi basate su punteggi con il frontend.
Puoi utilizzare questo cookie per proteggere le richieste e i caricamenti di pagine successivi dell'utente finale su un dominio specifico. Per impostazione predefinita, i token di sessione sono validi per 30 minuti. Tuttavia, se l'utente finale rimane nella pagina in cui hai implementato il token di sessione, reCAPTCHA lo aggiorna periodicamente 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, tranne la prima pagina visitata dagli utenti finali.
Di seguito è riportato un token sessione reCAPTCHA di esempio:recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time
Per implementare un token di sessione reCAPTCHA:
- Crea una chiave per il token di sessione per il tuo sito web.
gcloud
Per creare le 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: domini o 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 comporta un rischio per la sicurezza perché non ci sono limitazioni sul sito, pertanto chiunque può accedere alla chiave reCAPTCHA e utilizzarla.
- WAF_FEATURE: il nome della funzionalità WAF.
Specifica
session-token
. - WAF_SERVICE: il nome del fornitore di servizi WAF.
Specifica
akamai
per Akamai.
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 dell'API sui tipi di token e sui tipi di integrazione, consulta Token e Tipo di integrazione.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: domini o 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 comporta un rischio per la sicurezza perché non ci sono limitazioni sul sito, pertanto chiunque può accedere alla chiave reCAPTCHA e utilizzarla.
- WAF_FEATURE: il nome della funzionalità WAF.
Specifica
session-token
. - WAF_SERVICE: il nome del fornitore di servizi WAF.
Specifica
akamai
per Akamai.
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 delle seguenti 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 ContentDovresti 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": "akamai", "wafFeature": "SESSION_TOKEN" } }
Prendi nota della chiave del token di sessione per utilizzarla in un secondo momento.
Se vuoi iniettare il codice JavaScript di reCAPTCHA da Akamai, salta il passaggio successivo e configura le proprietà in Akamai Property Manager.
-
Aggiungi la chiave session-token e
waf=session
al codice JavaScript di reCAPTCHA.Il seguente script di esempio mostra come implementare un token 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>
pagina-sfida
Quando implementi una pagina di verifica reCAPTCHA, reCAPTCHA reindirizza a una pagina interpagina in cui viene stabilito se è necessario mostrare un test CAPTCHA a un utente. Pertanto, i test CAPTCHA potrebbero non essere visibili a tutti gli utenti.
Per implementare una pagina di verifica reCAPTCHA:
- Crea una chiave per la pagina della sfida per il tuo sito web.
gcloud
Per creare le 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: domini o 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: il nome del fornitore di servizi WAF.
Specifica
akamai
per Akamai.
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 dell'API sui tipi di token e sui tipi di integrazione, consulta Token e Tipo di integrazione.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: domini o 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: il nome del fornitore di servizi WAF.
Specifica
akamai
per Akamai.
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 delle seguenti 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 ContentDovresti 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": "akamai", "wafFeature": "CHALLENGE_PAGE" } }
Prendi nota della chiave della pagina della sfida per utilizzarla in un secondo momento.
- Per reindirizzare gli utenti alla pagina della richiesta di verifica reCAPTCHA e ricevere un token reCAPTCHA, crea un criterio di firewall con l'azione
redirect
nelle pagine protette.
Express
Per implementare la protezione espressa reCAPTCHA WAF, crea una chiave espressa.
-
In the Google Cloud console, 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.
-
gcloud
Per creare le 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: il nome del fornitore di servizi WAF.
Specifica
akamai
per Akamai.
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 dell'API sui tipi di token e sui tipi di integrazione, consulta Token e Tipo di integrazione.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: il nome del fornitore di servizi WAF.
Specifica
akamai
per Akamai.
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 delle seguenti 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 ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, }, "wafSettings": { "wafService": "akamai", } }
Prendi nota della chiave Express per utilizzarla in un secondo momento.
Eseguire l'integrazione con Akamai
Per l'integrazione con Akamai, devi configurare il servizio EdgeWorker e le proprietà per il servizio EdgeWorker in Property Manager.
Configurare il servizio EdgeWorker
Da Akamai Control Center, crea un ID EdgeWorker e assegna il ruolo Editor all'ID EdgeWorker che hai creato.
Per caricare il pacchetto reCAPTCHA per Akamai, crea una versione EdgeWorker utilizzando il pacchetto reCAPTCHA che hai scaricato.
Configurare le proprietà in Property Manager
Seleziona la proprietà Akamai che vuoi proteggere e crea una nuova versione della proprietà.
A seconda delle funzionalità WAF che hai implementato, crea le variabili predefinite dall'utente globali. Le variabili globali impostate nelle proprietà iniziano con il prefisso
PMUSER_
.La seguente tabella elenca le variabili che puoi creare e aggiungere nella sezione delle variabili della proprietà:
Nome variabile Descrizione Impostazione di sicurezza RECAPTCHAJSINSTALL
Invia il codice JavaScript di reCAPTCHA. URL delle pagine in cui vuoi che Akamai chiami l'API reCAPTCHA per valutare il punteggio reCAPTCHA ed eseguire l'azione configurata nel criterio del firewall. Specifica i percorsi come pattern glob e utilizza ";" come delimitatore. Nascosto RECAPTCHACHALLENGESITEKEY
Chiave della pagina di verifica reCAPTCHA. Questa variabile è obbligatoria se vuoi reindirizzare gli utenti alla pagina della verifica reCAPTCHA. Nascosto RECAPTCHAACTIONSITEKEY
Chiave token di azione reCAPTCHA. Questa variabile è obbligatoria se utilizzi il token di azione reCAPTCHA per proteggere le tue pagine. Nascosto RECAPTCHASESSIONSITEKEY
Chiave token sessione reCAPTCHA. Questa variabile è obbligatoria se utilizzi il token di sessione reCAPTCHA per proteggere le tue pagine. Devi utilizzare questa variabile se RECAPTCHAJSINSTALL
è impostato per configurare il codice JavaScript di reCAPTCHA di Akamai.Nascosto RECAPTCHAEXPRESSSITEKEY
Chiave reCAPTCHA Express. Questa variabile è obbligatoria se utilizzi reCAPTCHA Express per proteggere le tue pagine. Nascosto GCPPROJECTNUMBER
L'ID del tuo progetto Google Cloud.
Nascosto GCPAPIKEY
La chiave API che hai creato per l'autenticazione.
Nascosto Per le istruzioni, vedi Creare una variabile.
Per attivare il servizio EdgeWorker, aggiungi una regola utilizzando il modello di regola vuoto con le seguenti informazioni:
Criteri
- Nome:
reCAPTCHA EdgeWorkers rule
Criteri: Corrispondenza a tutti
Se
Percorso
corrisponde a uno di
/*
I criteri
matches one of
devono corrispondere a un superinsieme degli URL che devono essere protetti da reCAPTCHA. Il percorso/*
include tutti i percorsi. Puoi scegliere di aggiungere pagine specifiche.(Facoltativo) Se vuoi aggiungere un'altra condizione per limitare le estensioni dei file, utilizza quanto segue:
Se
Estensione del file
è una di
html
- Nome:
Comportamento
- Attiva: On
- Identificatore: Your_EdgeWorker_ID
- Attivare i report mPulse: Off
Per inoltrare la chiamata dal servizio EdgeWorker all'API reCAPTCHA
createAssessment
, aggiungi una nuova regola utilizzando il modello di regola vuota con le seguenti informazioni:Criteri
- Nome:
reCAPTCHA assessment rule
- Criteri: Corrisponde a tutti
Se
Percorso
corrisponde a uno di
/v1/projects/*/assessments
- Nome:
Comportamento
- Tipo di origine: La tua origine
- Nome host del server di origine:
public-preview-recaptchaenterprise.googleapis.com
- Inoltra intestazione host: Valore personalizzato
- Intestazione Host inoltrata personalizzata:
public-preview-recaptchaenterprise.googleapis.com
- Nome host della chiave della cache: Nome host dell'origine
- Supporta la compressione Gzip: Sì
- Invia intestazione IP client reale: Sì
- Nome dell'intestazione IP client reale: True-Client-IP
- Consenti ai client di impostare l'intestazione IP client reale: No
- Impostazioni di verifica: Utilizza le impostazioni della piattaforma
- Utilizza l'estensione TLS SNI: Sì
- Porta HTTP: 80
- Porta HTTPS: 443
(Facoltativo) Per inoltrare la chiamata dal servizio EdgeWorker alla pagina della verifica reCAPTCHA, aggiungi una nuova regola per reindirizzare il traffico alla pagina della verifica con le seguenti informazioni:
Criteri
- Nome:
reCAPTCHA challenge page rule
- Criteri: Corrisponde a tutti
Se
Percorso
corrisponde a uno di
/recaptcha/challengepage
- Nome:
Comportamento
- Tipo di origine: La tua origine
- Nome host del server di origine:
www.google.com
- Inoltra intestazione host: Valore personalizzato
- Intestazione Host inoltrata personalizzata:
www.google.com
- Nome host della chiave della cache: Nome host dell'origine
- Supporta la compressione Gzip: Sì
- Invia intestazione IP client reale: Sì
- Nome dell'intestazione IP client reale: True-Client-IP
- Consenti ai client di impostare l'intestazione IP client reale: No
- Impostazioni di verifica: Utilizza le impostazioni della piattaforma
- Utilizza l'estensione TLS SNI: Sì
- Porta HTTP: 80
- Porta HTTPS: 443
Attiva le modifiche:
Crea criteri firewall reCAPTCHA
Devi creare un criterio firewall che specifichi le regole per ogni pagina che vuoi proteggere sul tuo sito web. Puoi creare criteri firewall con una o più funzionalità di reCAPTCHA per WAF.
Nel criterio firewall di reCAPTCHA, aggiungi le regole nell'ordine della priorità prevista. La prima regola ha l'ordine più elevato. Puoi anche riordinare la priorità utilizzando ReorderFirewallPoliciesRequest
.
Per una richiesta in arrivo, quando una condizione del criterio corrisponde al percorso specificato, il fornitore di servizi WAF implementa l'azione definita e le regole successive non vengono valutate.
- A seconda delle funzionalità che hai scelto, svolgi i seguenti passaggi:
- Identifica il percorso che vuoi proteggere.
- Identifica le condizioni per consentire, reindirizzare o bloccare l'accesso.
- Assegna una priorità alle regole.
- Comprendi i componenti dei criteri firewall e i relativi attributi.
-
In the Google Cloud console, 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.
- Per eseguire l'override di gcloud CLI in modo da accedere alla versione di anteprima pubblica dell'API reCAPTCHA, esegui il seguente comando:
gcloud config set api_endpoint_overrides/recaptchaenterprise https://public-preview-recaptchaenterprise.googleapis.com/
- Per creare criteri firewall reCAPTCHA, utilizza il comando gcloud recaptcha firewall-policies create:
Nel criterio firewall di reCAPTCHA, aggiungi le regole in ordine di priorità prevista. Devi prima aggiungere una regola con la priorità più alta. Per una richiesta in arrivo, quando una condizione del criterio corrisponde al percorso specificato, il provider di servizi WAF implementa l'azione definita e le regole successive non vengono valutate. La regola predefinita è consentire l'accesso.
gcloud recaptcha firewall-policies create \ --actions=ACTION \ --condition=CONDITION \ --description=DESCRIPTION \ --path=PATH
Fornisci i seguenti valori:
- ACTION: le azioni che il fornitore di servizi WAF deve intraprendere per la richiesta in arrivo. Può contenere al massimo un'azione terminale, ovvero un'azione che forza una risposta.
Specifica una delle seguenti azioni:
allow
: consente l'accesso alla pagina richiesta. Questa è un'azione definitiva.block
: nega l'accesso alla pagina richiesta. Questa è un'azione definitiva.redirect
: reindirizza la richiesta dell'utente in arrivo alla pagina della verifica reCAPTCHA. Questa è un'azione definitiva.substitute
: invia una pagina diversa da quella richiesta a una richiesta di un utente fraudolento. Questa è un'azione definitiva.set_header
: imposta un'intestazione personalizzata e consente alla richiesta dell'utente in arrivo di continuare al backend. Il backend può quindi attivare una protezione personalizzata. Questa è un'azione non terminale.
- CONDITION: un'espressione condizionale CEL (Common Expression Language) che specifica se il criterio del firewall reCAPTCHA si applica a una richiesta utente in arrivo. Se questa condizione restituisce true e il percorso richiesto corrisponde al pattern del percorso, le azioni associate vengono eseguite dal provider di servizi WAF. La stringa condizione viene verificata per verificare la correttezza della sintassi CEL al momento della creazione. Per ulteriori informazioni sulla definizione del linguaggio, consulta la definizione del linguaggio CEL.
- DESCRIPTION: una descrizione dell'obiettivo del criterio del firewall reCAPTCHA. La descrizione deve contenere al massimo 256 caratteri UTF-8.
- PATH: il percorso a cui si applica il criterio del firewall reCAPTCHA. Deve essere specificato come pattern glob. Per ulteriori informazioni su glob, consulta la pagina del manuale.
Dopo l'esecuzione corretta del comando, viene visualizzato un output simile al seguente:
Created [100].
L'esempio seguente crea un criterio firewall reCAPTCHA per bloccare il targeting per il traffico per
/example/page.html
quando il punteggio è inferiore a 0,1.gcloud recaptcha firewall-policies create \ --description="example policy" \ --path="/example/page.html" \ --condition="recaptcha.score < 0.1" \ --actions="block"
- ACTION: le azioni che il fornitore di servizi WAF deve intraprendere per la richiesta in arrivo. Può contenere al massimo un'azione terminale, ovvero un'azione che forza una risposta.
Specifica una delle seguenti azioni: