Integrar Google Cloud Armor en sitios web

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

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

Antes de empezar

  1. Habilita la API de reCAPTCHA Enterprise.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

    1. Elige una o varias funciones de WAF que se adapten mejor a tu caso práctico.
    2. Identifica las páginas que quieres proteger y el tipo de función de Cloud Armor que quieres implementar en esas páginas.

Implementar funciones de reCAPTCHA para Cloud Armor

En función de tus requisitos, puedes usar una o varias 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 quieres 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.

Implementar tokens de acción de reCAPTCHA

Debes tener reCAPTCHA en funcionamiento en tus páginas web para generar tokens de acción. Una vez que reCAPTCHA genera un token de acción, lo adjuntas a un encabezado de solicitud predefinido en cualquier lugar en el que necesites proteger una acción del usuario, como checkout. De forma predeterminada, los tokens de acción son válidos durante 30 minutos, pero pueden variar en función del tráfico. Debes adjuntar el token de acción a un encabezado de solicitud predefinido antes de que caduque para que Cloud Armor pueda evaluar los atributos del token.

Para implementar un token de acción de reCAPTCHA, sigue estos pasos:

  1. Crea una clave action-token para tu sitio web.

    consola de Cloud

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

      Ir a reCAPTCHA

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

      Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, a continuación, selecciona tu proyecto.

    3. Haz clic en Crear clave.
    4. En el campo Nombre visible, introduce el nombre visible de la clave.
    5. En función de la plataforma para la que quieras 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 tus subdominios, asegúrate de que el interruptor Inhabilitar verificación de dominio esté desactivado.

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

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

        1. En la sección Lista de dominios, haz clic en Añadir un dominio.
        2. En el campo Dominio, introduce el nombre de tu dominio.
        3. Opcional: Para añadir otro dominio, haga clic en Añadir un dominio e introduzca el nombre de otro dominio en el campo Dominio. Puedes añadir 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 tu sitio web se sirve desde varios dominios. Si especifica un dominio (por ejemplo, examplepetstore.com), no es necesario que especifique sus subdominios (por ejemplo, subdomain.examplepetstore.com).

      4. En Ajustes adicionales, activa el interruptor ¿Vas a implementar esta clave en un firewall de aplicaciones web (WAF)?
      5. En las opciones de Función, selecciona Acción.

      6. Opcional: Activa el interruptor ¿Usarás métodos de verificación de la identidad?

      7. Haz clic en Crear clave.
      8. La clave que has creado se muestra en la página Claves de reCAPTCHA.

    gcloud

    Para crear claves de reCAPTCHA, usa el comando gcloud recaptcha keys create.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • INTEGRATION_TYPE: tipo de integración. Especifica score o checkbox.
    • DISPLAY_NAME: nombre de la clave. Normalmente, el nombre de un sitio.
    • DOMAIN_NAME: dominios o subdominios de sitios web que pueden usar la clave.

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

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

    • WAF_FEATURE: nombre de la función de WAF. Especifica action-token.
    • WAF_SERVICE: nombre del proveedor de servicios de 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 clave y los tipos de integración, consulta Clave y Tipo de integración.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • INTEGRATION_TYPE: tipo de integración. Especifica score o checkbox.
    • DISPLAY_NAME: nombre de la clave. Normalmente, el nombre de un sitio.
    • DOMAIN_NAME: dominios o subdominios de sitios web que pueden usar la clave.

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

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

    • WAF_FEATURE: nombre de la función de WAF. Especifica action-token.
    • WAF_SERVICE: nombre del proveedor de servicios de WAF. Especifica CA para Cloud Armor.
    • DEFAULT_SCORE_THRESHOLD: en el caso de las claves de verificación basadas en políticas, define el umbral de verificación universal de la clave cuando no se ha definido un umbral de puntuación personalizado. Esta función está en versión preliminar.
    • ACTION_SCORE_THRESHOLDS: en el caso de las claves de verificación basadas en políticas, se especifica la acción y la puntuación de umbral correspondiente, que debe estar entre 0,0 y 1,0. Por ejemplo, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. Esta función está en versión preliminar.

    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 siguiente:

    
    {
      "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 de token de acción que has creado. Para obtener instrucciones, consulta el documento que corresponda al tipo de integración de tu clave action-token.

  3. Una vez que hayas recibido 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 Fetch para adjuntar el token a un encabezado de solicitud predefinido.

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

Implementar tokens de sesión de reCAPTCHA

El JavaScript de reCAPTCHA define 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 siga 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 visite antes de la página que necesite protección. Por ejemplo, si quiere proteger la página de tramitación de la compra, instale una clave de token de sesión en la página principal o en la página del producto.

Para saber cómo instalar claves de token de sesión en tus páginas web, consulta Integrar claves basadas en puntuación con el frontend.

Puede usar esta cookie para proteger las solicitudes posteriores del usuario final y las cargas de página en un dominio específico. Los tokens de sesión son válidos durante 30 minutos de forma predeterminada. Sin embargo, si el usuario final permanece en la página en la que has implementado el token de sesión, reCAPTCHA lo actualizará periódicamente para evitar que caduque.

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

A continuación, se muestra un ejemplo de 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 Google Cloud consola, ve a la página reCAPTCHA.

      Ir a reCAPTCHA

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

      Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, a continuación, selecciona tu proyecto.

    3. Haz clic en Crear clave.
    4. En el campo Nombre visible, introduce el nombre visible de la clave.
    5. En función de la plataforma para la que quieras 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 tus subdominios, asegúrate de que el interruptor Inhabilitar verificación de dominio esté desactivado.

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

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

        1. En la sección Lista de dominios, haz clic en Añadir un dominio.
        2. En el campo Dominio, introduce el nombre de tu dominio.
        3. Opcional: Para añadir otro dominio, haga clic en Añadir un dominio e introduzca el nombre de otro dominio en el campo Dominio. Puedes añadir 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 tu sitio web se sirve desde varios dominios. Si especifica un dominio (por ejemplo, examplepetstore.com), no es necesario que especifique sus subdominios (por ejemplo, subdomain.examplepetstore.com).

      4. En Ajustes adicionales, activa el interruptor ¿Vas a implementar esta clave en un firewall de aplicaciones web (WAF)?
      5. En las opciones de Función, selecciona Sesión.

      6. Opcional:Activa Inhabilitar verificación de dominio.

        Inhabilitar la verificación del dominio supone un riesgo para la seguridad, ya que 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 que has creado se muestra en la página Claves de reCAPTCHA.

    gcloud

    Para crear claves de reCAPTCHA, usa el comando gcloud recaptcha keys create.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • INTEGRATION_TYPE: tipo de integración. Especifica score.
    • DISPLAY_NAME: nombre de la clave. Normalmente, el nombre de un sitio.
    • DOMAIN_NAME: dominios o subdominios de sitios web que pueden usar la clave.

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

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

    • WAF_FEATURE: nombre de la función de WAF. Especifica session-token.
    • WAF_SERVICE: nombre del proveedor de servicios de 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 clave y los tipos de integración, consulta Clave y Tipo de integración.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • INTEGRATION_TYPE: tipo de integración. Especifica score.
    • DISPLAY_NAME: nombre de la clave. Normalmente, el nombre de un sitio.
    • DOMAIN_NAME: dominios o subdominios de sitios web que pueden usar la clave.

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

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

    • WAF_FEATURE: nombre de la función de WAF. Especifica session-token.
    • WAF_SERVICE: nombre del proveedor de servicios de WAF. Especifica CA para Cloud Armor.
    • DEFAULT_SCORE_THRESHOLD: en el caso de las claves de verificación basadas en políticas, define el umbral de verificación universal de la clave cuando no se ha definido un umbral de puntuación personalizado. Esta función está en versión preliminar.
    • ACTION_SCORE_THRESHOLDS: en el caso de las claves de verificación basadas en políticas, se especifica la acción y la puntuación de umbral correspondiente, que debe estar entre 0,0 y 1,0. Por ejemplo, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. Esta función está en versión preliminar.

    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 siguiente:

    
    {
      "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. Añada la clave session-token y waf=session al JavaScript de reCAPTCHA.

    En el siguiente ejemplo de secuencia de comandos 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>

Implementar una página de prueba reCAPTCHA

Cuando implementas una página de verificación reCAPTCHA, reCAPTCHA redirige a una página intersticial donde determina si es necesario mostrar una verificación CAPTCHA a un usuario. Por lo tanto, es posible que no todos los usuarios vean las pruebas CAPTCHA.

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

consola de Cloud

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

    Ir a reCAPTCHA

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

    Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, a continuación, selecciona tu proyecto.

  3. Haz clic en Crear clave.
  4. En el campo Nombre visible, introduce el nombre visible de la clave.
  5. En función de la plataforma para la que quieras crear claves de reCAPTCHA para el WAF, realiza la acción correspondiente:
    1. En Tipo de aplicación, selecciona Web.
    2. En Ajustes adicionales, activa el interruptor ¿Vas a implementar esta clave en un firewall de aplicaciones web (WAF)?
    3. En las opciones de Función, selecciona Reto.

    4. Activa Inhabilitar verificación de dominio.

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

    5. Haz clic en Crear clave.
    6. La clave que has creado se muestra en la página Claves de reCAPTCHA.

gcloud

Para crear claves de reCAPTCHA, usa el comando gcloud recaptcha keys create.

Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

  • INTEGRATION_TYPE: tipo de integración. Especifica invisible.
  • DISPLAY_NAME: nombre de la clave. Normalmente, el nombre de un sitio.
  • DOMAIN_NAME: dominios o subdominios de sitios web que pueden usar la clave. Especifica --allow-all-domains.
  • WAF_FEATURE: nombre de la función de WAF. Especifica challenge-page.
  • WAF_SERVICE: nombre del proveedor de servicios de 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 clave y los tipos de integración, consulta Clave y Tipo de integración.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • INTEGRATION_TYPE: tipo de integración. Especifica invisible.
  • DISPLAY_NAME: nombre de la clave. Normalmente, el nombre de un sitio.
  • DOMAIN_NAME: dominios o subdominios de sitios web que pueden usar la clave. Especifica --allow-all-domains.
  • WAF_FEATURE: nombre de la función de WAF. Especifica challenge-page.
  • WAF_SERVICE: nombre del proveedor de servicios de WAF. Especifica CA para Cloud Armor.
  • DEFAULT_SCORE_THRESHOLD: en el caso de las claves de verificación basadas en políticas, define el umbral de verificación universal de la clave cuando no se ha definido un umbral de puntuación personalizado. Esta función está en versión preliminar.
  • ACTION_SCORE_THRESHOLDS: en el caso de las claves de verificación basadas en políticas, se especifica la acción y la puntuación de umbral correspondiente, que debe estar entre 0,0 y 1,0. Por ejemplo, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. Esta función está en versión preliminar.

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 siguiente:


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

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

  "integrationType": "INVISIBLE",
 

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

  "wafFeature": "CHALLENGE_PAGE"
  

}
}

Configurar 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 gestión de bots.

Si has implementado una página de prueba reCAPTCHA, debes hacer lo siguiente:

  1. Asocia la clave de la página de verificación con tu política de seguridad.
  2. Configura una regla de política de seguridad para redirigir una solicitud de evaluación de reCAPTCHA.

Si has implementado 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, consulta los atributos de token de reCAPTCHA para Cloud Armor.

Para saber cómo configurar políticas de seguridad de Cloud Armor y usar las claves de reCAPTCHA para WAF con tus políticas de seguridad, consulta Configurar reglas para la gestión de bots.

Obtener puntuaciones de reCAPTCHA

En el caso de los tokens de acción y de sesión de reCAPTCHA, puedes obtener las puntuaciones de reCAPTCHA del encabezado X-Recaptcha-Wafdata. En función de estas puntuaciones, puedes configurar cualquier acción personalizada que deba llevarse a cabo 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.

Siguientes pasos