Integra Google Cloud Armor en sitios web

En este documento, se muestra cómo integrar reCAPTCHA para Cloud Armor en sitios web.

Para completar la integración, debes implementar una o más funciones de reCAPTCHA para Cloud Armor y configurar las políticas de seguridad de Cloud Armor.

Antes de comenzar

  1. Habilita la API de reCAPTCHA Enterprise.

    Enable the API

  2. Planifica cómo deseas implementar las funciones de reCAPTCHA para que Cloud Armor proteja tu sitio web.

    1. Elige una o más funciones del WAF que se ajusten mejor a tu caso de uso.
    2. Identifica las páginas que deseas proteger y el tipo de función de Cloud Armor que deseas implementar en ellas.

Implementa funciones de reCAPTCHA para Cloud Armor

Según tus requisitos, puedes usar una o más funciones de reCAPTCHA para Cloud Armor en una sola aplicación.

Si quieres usar más de una función, debes crear una clave de reCAPTCHA para cada una de ellas y usarlas en tu aplicación. Por ejemplo, si deseas usar tokens de acción de reCAPTCHA y la página de desafío de reCAPTCHA, debes crear una clave de token de acción y una clave de página de desafío, y usarlas en tu aplicación.

Implementa tokens de acción de reCAPTCHA

Debes tener reCAPTCHA en ejecución en tus páginas web para generar tokens de acción. Después de que reCAPTCHA genera un token de acción, lo adjuntas a un encabezado de solicitud predefinido donde necesites proteger cualquier acción del usuario, como checkout. De forma predeterminada, los tokens de acción son válidos durante 30 minutos, pero pueden variar según el tráfico. Debes adjuntar el token de acción a un encabezado de solicitud predefinido antes de que venza el token para que Cloud Armor pueda evaluar los atributos del token.

Para implementar un token de acción de reCAPTCHA, haz lo siguiente:

  1. Crea una clave de token de acción para tu sitio web.

    Consola de Cloud

    1. En la consola de Google Cloud , ve a la página reCAPTCHA.

      Ir a reCAPTCHA

    2. Verifica que el nombre de tu proyecto aparezca en el selector de recursos en la parte superior de la página.

      Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, luego, selecciona tu proyecto.

    3. Haz clic en Crear clave.
    4. En el campo Nombre visible, ingresa un nombre visible para la clave.
    5. Según la plataforma para la que desees crear claves de reCAPTCHA para el WAF, realiza la acción correspondiente:
      1. En Tipo de aplicación, selecciona Web.

        Aparecerá la sección Lista de dominios.

      2. Para proteger la clave de reCAPTCHA de tu dominio y subdominios, asegúrate de que el botón de activación Inhabilitar verificación de dominio esté desactivado.

        Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, por lo que cualquier persona puede acceder a tu clave de reCAPTCHA y usarla.

      3. Ingresa el nombre de dominio de tu sitio web:

        1. En la sección Lista de dominios, haz clic en Agregar un dominio.
        2. En el campo Dominio, ingresa el nombre de tu dominio.
        3. Opcional: Para agregar un dominio adicional, haz clic en Agregar un dominio e ingresa el nombre de otro dominio en el campo Dominio. Puedes agregar hasta un máximo de 250 dominios.

          En el caso de los sitios web, la clave de reCAPTCHA es única para los dominios y subdominios que especifiques. Puedes especificar más de un dominio si publicas tu sitio web desde varios dominios. Si especificas un dominio (por ejemplo, examplepetstore.com), no es necesario que especifiques sus subdominios (por ejemplo, subdomain.examplepetstore.com).

      4. En Configuración adicional, activa el botón de activación ¿Implementarás esta clave en un firewall de aplicación web (WAF)?.
      5. En las opciones de Feature, selecciona Action.

      6. Opcional: Activa el botón de activación ¿Usarás desafíos?.

      7. Haz clic en Crear clave.
      8. La clave recién creada aparece en la página Claves de reCAPTCHA.

    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:

    • INTEGRATION_TYPE: Tipo de integración. Especifica score o checkbox.
    • DISPLAY_NAME: Nombre de la clave. Por lo general, es el nombre del sitio.
    • DOMAIN_NAME: Son los dominios o subdominios de los sitios web que pueden usar la clave.

      Especifica varios dominios como una lista separada por comas. Opcional: Especifica --allow-all-domains para inhabilitar la verificación del dominio.

      Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, por lo que cualquier persona puede acceder a tu clave de reCAPTCHA y usarla.

    • WAF_FEATURE: Es el nombre de la función del WAF. Especifica action-token.
    • WAF_SERVICE: Nombre del proveedor de servicios del WAF. Especifica CA para Cloud Armor.

    Ejecuta el 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 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 Key y Integration type.

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • INTEGRATION_TYPE: Tipo de integración. Especifica score o checkbox.
    • DISPLAY_NAME: Nombre de la clave. Por lo general, es el nombre del sitio.
    • DOMAIN_NAME: Son los dominios o subdominios de los sitios web que pueden usar la clave.

      Especifica varios dominios como una lista separada por comas. Opcional: Especifica --allow-all-domains para inhabilitar la verificación del dominio.

      Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, por lo que cualquier persona puede acceder a tu clave de reCAPTCHA y usarla.

    • WAF_FEATURE: Es el nombre de la función del WAF. Especifica action-token.
    • WAF_SERVICE: Nombre del proveedor de servicios del WAF. Especifica CA para Cloud Armor.
    • DEFAULT_SCORE_THRESHOLD: Para las claves de desafío basadas en políticas, este parámetro define el umbral de desafío universal para la clave cuando no se define un umbral de puntuación personalizado. Esta función está en vista previa.
    • ACTION_SCORE_THRESHOLDS: Para las claves de desafío basadas en políticas, se especifica la acción y la puntuación de umbral correspondiente entre 0.0 y 1.0. Por ejemplo, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}' Esta función está en vista previa.

    Método HTTP y URL:

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

    Cuerpo JSON de la solicitud:

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

    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 Content

    Deberí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,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

  2. Integra el JavaScript de reCAPTCHA en tus páginas web con la clave del token de acción que creaste. Para obtener instrucciones, consulta el documento que corresponde al tipo de integración de tu clave de token de acción.

  3. Después de recibir el token de reCAPTCHA, adjúntalo a un encabezado de solicitud predefinido con el siguiente formato:

     X-Recaptcha-Token: value-of-your-action-token
    

    Puedes usar lenguajes como XHR, Ajax o la API de Fetch para adjuntar el token a un encabezado de solicitud predefinido.

    La siguiente secuencia de comandos de ejemplo muestra cómo proteger la acción execute y adjuntar el token a un encabezado de solicitud predefinido con JavaScript y 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>
      
      

Implementa tokens de sesión de reCAPTCHA

El JavaScript de reCAPTCHA establece un token de sesión de reCAPTCHA como una cookie en el navegador del usuario final después de la evaluación. El navegador del usuario final adjunta la cookie y la actualiza mientras el JavaScript de reCAPTCHA permanezca activo.

Para proporcionar un token de sesión como cookie, instala una clave de token de sesión en al menos una de tus páginas web que el usuario final explore antes de la página que se debe proteger. Por ejemplo, si quieres proteger la página de confirmación de compra, instala una clave de token de sesión en la página principal o en la página del producto.

Para obtener información sobre cómo instalar claves de token de sesión en tus páginas web, consulta Integra claves basadas en puntuaciones con el frontend.

Puedes usar esta cookie para proteger las solicitudes posteriores y las cargas de página del usuario final en un dominio específico. De forma predeterminada, los tokens de sesión son válidos durante 30 minutos. Sin embargo, si el usuario final permanece en la página en la que implementaste el token de sesión, reCAPTCHA actualiza el token de sesión periódicamente para evitar que venza.

Instala tokens de sesión en cada página que necesite protección de reCAPTCHA. Te recomendamos que protejas cada página con reCAPTCHA y que uses reglas de Cloud Armor para aplicar el acceso en todas las páginas, excepto la primera que exploran los usuarios finales.

A continuación, se muestra un ejemplo de un token de sesión de reCAPTCHA:
   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

Para implementar un token de sesión de reCAPTCHA, haz lo siguiente:

  1. Crea una clave de token de sesión para tu sitio web.

    Consola de Cloud

    1. En la consola de Google Cloud , ve a la página reCAPTCHA.

      Ir a reCAPTCHA

    2. Verifica que el nombre de tu proyecto aparezca en el selector de recursos en la parte superior de la página.

      Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, luego, selecciona tu proyecto.

    3. Haz clic en Crear clave.
    4. En el campo Nombre visible, ingresa un nombre visible para la clave.
    5. Según la plataforma para la que desees crear claves de reCAPTCHA para el WAF, realiza la acción correspondiente:
      1. En Tipo de aplicación, selecciona Web.

        Aparecerá la sección Lista de dominios.

      2. Para proteger la clave de reCAPTCHA de tu dominio y subdominios, asegúrate de que el botón de activación Inhabilitar verificación de dominio esté desactivado.

        Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, por lo que cualquier persona puede acceder a tu clave de reCAPTCHA y usarla.

      3. Ingresa el nombre de dominio de tu sitio web:

        1. En la sección Lista de dominios, haz clic en Agregar un dominio.
        2. En el campo Dominio, ingresa el nombre de tu dominio.
        3. Opcional: Para agregar un dominio adicional, haz clic en Agregar un dominio e ingresa el nombre de otro dominio en el campo Dominio. Puedes agregar hasta un máximo de 250 dominios.

          En el caso de los sitios web, la clave de reCAPTCHA es única para los dominios y subdominios que especifiques. Puedes especificar más de un dominio si publicas tu sitio web desde varios dominios. Si especificas un dominio (por ejemplo, examplepetstore.com), no es necesario que especifiques sus subdominios (por ejemplo, subdomain.examplepetstore.com).

      4. En Configuración adicional, activa el botón de activación ¿Implementarás esta clave en un firewall de aplicación web (WAF)?.
      5. En las opciones de Feature, selecciona Session.

      6. Opcional:Activa Inhabilitar la verificación del dominio.

        Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, por lo que cualquier persona puede acceder a tu clave de reCAPTCHA y usarla.

      7. Haz clic en Crear clave.
      8. La clave recién creada aparece en la página Claves de reCAPTCHA.

    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:

    • INTEGRATION_TYPE: Tipo de integración. Especifica score.
    • DISPLAY_NAME: Nombre de la clave. Por lo general, es el nombre del sitio.
    • DOMAIN_NAME: Son los dominios o subdominios de los sitios web que pueden usar la clave.

      Especifica varios dominios como una lista separada por comas. Opcional: Especifica --allow-all-domains para inhabilitar la verificación del dominio.

      Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, por lo que cualquier persona puede acceder a tu clave de reCAPTCHA y usarla.

    • WAF_FEATURE: Es el nombre de la función del WAF. Especifica session-token.
    • WAF_SERVICE: Nombre del proveedor de servicios del WAF. Especifica CA para Cloud Armor.

    Ejecuta el 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 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 Key y Integration type.

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • INTEGRATION_TYPE: Tipo de integración. Especifica score.
    • DISPLAY_NAME: Nombre de la clave. Por lo general, es el nombre del sitio.
    • DOMAIN_NAME: Son los dominios o subdominios de los sitios web que pueden usar la clave.

      Especifica varios dominios como una lista separada por comas. Opcional: Especifica --allow-all-domains para inhabilitar la verificación del dominio.

      Inhabilitar la verificación del dominio es un riesgo de seguridad porque no hay restricciones en el sitio, por lo que cualquier persona puede acceder a tu clave de reCAPTCHA y usarla.

    • WAF_FEATURE: Es el nombre de la función del WAF. Especifica session-token.
    • WAF_SERVICE: Nombre del proveedor de servicios del WAF. Especifica CA para Cloud Armor.
    • DEFAULT_SCORE_THRESHOLD: Para las claves de desafío basadas en políticas, este parámetro define el umbral de desafío universal para la clave cuando no se define un umbral de puntuación personalizado. Esta función está en vista previa.
    • ACTION_SCORE_THRESHOLDS: Para las claves de desafío basadas en políticas, se especifica la acción y la puntuación de umbral correspondiente entre 0.0 y 1.0. Por ejemplo, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}' Esta función está en vista previa.

    Método HTTP y URL:

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

    Cuerpo JSON de la solicitud:

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

    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 Content

    Deberí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,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

  2. Agrega la clave del token de sesión y waf=session al código JavaScript de reCAPTCHA.

    En la siguiente secuencia de comandos de ejemplo, se muestra cómo implementar un token de sesión en una página 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>

Implementa una página de desafío de reCAPTCHA

Cuando implementas una página de desafío de reCAPTCHA, reCAPTCHA redirecciona a una página intersticial en la que determina si es necesario mostrarle un desafío CAPTCHA a un usuario. Por lo tanto, es posible que los desafíos de CAPTCHA no sean visibles para todos los usuarios.

Para implementar una página de desafío de reCAPTCHA, crea una clave de página de desafío para tu sitio web.

Consola de Cloud

  1. En la consola de Google Cloud , ve a la página reCAPTCHA.

    Ir a reCAPTCHA

  2. Verifica que el nombre de tu proyecto aparezca en el selector de recursos en la parte superior de la página.

    Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, luego, selecciona tu proyecto.

  3. Haz clic en Crear clave.
  4. En el campo Nombre visible, ingresa un nombre visible para la clave.
  5. Según la plataforma para la que desees crear claves de reCAPTCHA para el WAF, realiza la acción correspondiente:
    1. En Tipo de aplicación, selecciona Web.
    2. En Configuración adicional, activa el botón de activación ¿Implementarás esta clave en un firewall de aplicación web (WAF)?.
    3. En las opciones de Feature, selecciona Challenge.

    4. Activa Inhabilitar la verificación del dominio.

      Cuando inhabilitas la verificación del dominio para las claves de la página de desafío, Cloud Armor verifica el dominio.

    5. Haz clic en Crear clave.
    6. La clave recién creada aparece en la página Claves de reCAPTCHA.

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:

  • INTEGRATION_TYPE: Tipo de integración. Especifica invisible.
  • DISPLAY_NAME: Nombre de la clave. Por lo general, es el nombre del sitio.
  • DOMAIN_NAME: Son los dominios o subdominios de los sitios web que pueden usar la clave. Especifica --allow-all-domains.
  • WAF_FEATURE: Es el nombre de la función del WAF. Especifica challenge-page.
  • WAF_SERVICE: Nombre del proveedor de servicios del WAF. Especifica CA para Cloud Armor.

Ejecuta el 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 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 Key y Integration type.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • INTEGRATION_TYPE: Tipo de integración. Especifica invisible.
  • DISPLAY_NAME: Nombre de la clave. Por lo general, es el nombre del sitio.
  • DOMAIN_NAME: Son los dominios o subdominios de los sitios web que pueden usar la clave. Especifica --allow-all-domains.
  • WAF_FEATURE: Es el nombre de la función del WAF. Especifica challenge-page.
  • WAF_SERVICE: Nombre del proveedor de servicios del WAF. Especifica CA para Cloud Armor.
  • DEFAULT_SCORE_THRESHOLD: Para las claves de desafío basadas en políticas, este parámetro define el umbral de desafío universal para la clave cuando no se define un umbral de puntuación personalizado. Esta función está en vista previa.
  • ACTION_SCORE_THRESHOLDS: Para las claves de desafío basadas en políticas, se especifica la acción y la puntuación de umbral correspondiente entre 0.0 y 1.0. Por ejemplo, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}' Esta función está en vista previa.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:


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

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 Content

Deberí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,

"webSettings": {
  "allowAllDomains": true,
  "allowedDomains": [
    "localhost"
  ],

  "integrationType": "INVISIBLE",
 

},
"wafSettings": {
  "wafService": "CA",

  "wafFeature": "CHALLENGE_PAGE"
  

}
}

Configura las políticas de seguridad de Cloud Armor

Después de implementar las funciones de reCAPTCHA para Cloud Armor, debes configurar las políticas de seguridad de Cloud Armor para la administración de bots.

Si implementaste una página de desafío de reCAPTCHA, debes hacer lo siguiente:

  1. Asocia la clave de la página de desafío a tu política de seguridad.
  2. Configura una regla de política de seguridad para redireccionar una solicitud de evaluación de reCAPTCHA.

Si implementaste tokens de acción o de sesión de reCAPTCHA, debes configurar una regla de política de seguridad que evalúe los tokens de reCAPTCHA.

Antes de configurar las políticas de seguridad de Cloud Armor, comprende los atributos del token de reCAPTCHA para Cloud Armor.

Si deseas obtener información para configurar políticas de seguridad de Cloud Armor y usar las claves de reCAPTCHA para WAF con tus políticas de seguridad, consulta Configura reglas para la administración de bots.

Obtén las puntuaciones de reCAPTCHA

En el caso de los tokens de acción y de sesión de reCAPTCHA, puedes obtener las puntuaciones de reCAPTCHA desde el encabezado X-Recaptcha-Wafdata. En función de estas puntuaciones, puedes configurar cualquier acción personalizada que deba realizarse para las solicitudes de los usuarios.

En el siguiente ejemplo, se muestra un encabezado X-Recaptcha-Wafdata de muestra:

X-Recaptcha-Wafdata: waf_service="Google Cloud Armor", action_token;score=0.9, session_token;score=0.8\r\n

También puedes ver las puntuaciones de reCAPTCHA en los registros de Google Cloud Armor.

¿Qué sigue?