En este documento, se muestra cómo configurar reCAPTCHA Express en un servidor de aplicaciones en un entorno en el que no es factible la integración del SDK para dispositivos móviles ni de JavaScript de reCAPTCHA, por ejemplo, la protección de extremos de API.
reCAPTCHA Express es una función que te permite crear evaluaciones sin los atributos del cliente. reCAPTCHA Express usa solo indicadores de backend para generar un Puntuación de riesgo de reCAPTCHA. Puedes usar esta puntuación de riesgo para decidir si deseas entregar la solicitud, redireccionar a una página de desafío o registrarla para un análisis posterior.
Antes de comenzar
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Registra el ID del proyecto de Google Cloud para usarlo más adelante.Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
Enable the reCAPTCHA Enterprise API.
Crea una clave de API para la autenticación:
En la consola de Google Cloud, ve a la página Credenciales.
Haz clic en
Crear credenciales y selecciona Clave de API.Registra la clave de API para usarla más adelante.
Crea una clave de reCAPTCHA exprés
Para implementar reCAPTCHA Express, crea una clave de reCAPTCHA Express.
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
Para crear claves de reCAPTCHA, usa el comando gcloud recaptcha keys create.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
Ejecuta el comando gcloud recaptcha keys create:
Linux, macOS o Cloud Shell
gcloud recaptcha keys create \ --express \ --display-name=DISPLAY_NAME
Windows (PowerShell)
gcloud recaptcha keys create ` --express ` --display-name=DISPLAY_NAME
Windows (cmd.exe)
gcloud recaptcha keys create ^ --express ^ --display-name=DISPLAY_NAME
La respuesta contiene la clave de reCAPTCHA recién creada.
REST
Para obtener información de referencia de la API sobre los tipos de claves y los tipos de integración, consulta Clave y Tipo de integración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- DISPLAY_NAME: Es el nombre de la clave. Por lo general, es el nombre de un sitio.
Método HTTP y URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", "expressSettings": {} }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando: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
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$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 ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "expressSettings": { } }
Registra tu clave exprés para usarla más adelante.
Crea una evaluación
Para realizar una solicitud a reCAPTCHA desde el servidor de tu aplicación,
Crea una evaluación con projects.assessments.create
.
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- API_KEY: Es la clave de API que creaste para la autenticación.
- EXPRESS_KEY: Es la clave exprés de reCAPTCHA que creaste para tu aplicación.
- USER_IP_ADDRESS: La dirección IP en la solicitud del dispositivo del usuario relacionada con este evento.
- HEADER_INFO: Opcional Los encabezados HTTP que el cliente envió a tu aplicación servidor. Es un array de cadenas que contiene encabezados de solicitud en el formato `[clave:valor]`. Por ejemplo, `[clave:valor, clave:valor,…]`. Te recomendamos que compartas tantos encabezados como sea posible en el orden requerido. Asegúrate de que el orden de los encabezados sea el mismo en todas las solicitudes de la misma sesión.
- JA3_FINGERPRINT: Opcional JA3 es una huella digital MD5 de ciertos campos del paquete de saludo del cliente TLS. Para obtener más información, consulta JA3: Un método para crear perfiles de clientes SSL/TLS.
- URI_NAME: Opcional Es el URI al que accede el usuario.
- USER_AGENT: Opcional El usuario-agente que está presente en la solicitud del dispositivo del usuario relacionada con este evento
- ACCOUNT_ID: Opcional Un identificador único y persistente para la cuenta del usuario, como un nombre de cuenta con codificación hash
Método HTTP y URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY
Cuerpo JSON de la solicitud:
{ "event": { "siteKey": "EXPRESS_KEY", "express": true, "userIpAddress": "USER_IP_ADDRESS", "headers": ["HEADER_INFO"], "ja3": "JA3_FINGERPRINT", "requestedUri": "URI_NAME", "userAgent": "USER_AGENT", "user_info": { "account_id": "ACCOUNT_ID" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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, "user_info": { "account_id": "123456789" }, "headers": [ "Origin: https://example.com", "Referer: https://example.com.login"], }, "riskAnalysis": { "score": 0.7, "reasons": [] } }
Interpretar las puntuaciones
reCAPTCHA exprés solo muestra dos puntuaciones: 0.3
y 0.7
.
0.3
indica que la interacción del usuario representa un mayor riesgo y es probablemente fraudulenta.
y 0.7
indica que la interacción del usuario representa un riesgo bajo y es probable
legítimos.
Si no hay indicadores, reCAPTCHA Express muestra 0.7
de forma predeterminada.
¿Qué sigue?
- Obtén más información para interpretar las puntuaciones de riesgo.
- Obtén información para usar reCAPTCHA Express en la capa de WAF.