与适用于网站的 Google Cloud Armor 集成

本文档介绍了如何在网站上集成 Cloud Armor 的 reCAPTCHA。

如需完成集成,您必须实现 reCAPTCHA for Cloud Armor 的一项或多项功能,并配置 Cloud Armor 安全政策。

准备工作

  1. 启用 reCAPTCHA Enterprise API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获取此权限。 了解如何授予角色。

    启用 API

  2. 规划如何实现 reCAPTCHA for Cloud Armor 的功能,以帮助保护您的网站。

    1. 选择最适合您的使用场景的一项或多项 WAF 功能。
    2. 确定要保护的网页以及要在这些网页上实现的 Cloud Armor 功能类型。

实现 reCAPTCHA for Cloud Armor 的功能

您可以根据自己的需求在单个应用中使用 reCAPTCHA for Cloud Armor 的一项或多项功能。

如果您想使用多项功能,则必须为每项功能创建一个 reCAPTCHA 密钥,并在应用中使用这些密钥。例如,如果您想使用 reCAPTCHA 操作令牌和 reCAPTCHA 验证任务页面,则必须创建操作令牌密钥和验证任务页面密钥,并在应用中使用它们。

实现 reCAPTCHA 操作令牌

您必须在网页上运行 reCAPTCHA 才能生成操作令牌。 在 reCAPTCHA 生成操作令牌后,您需要将该操作令牌附加到预定义的请求标头,以便在需要保护任何用户操作(例如 checkout)时使用。默认情况下,操作令牌的有效期为 30 分钟,但可能会因流量而异。您必须在操作令牌过期之前将其附加到预定义的请求标头,以便 Cloud Armor 评估令牌属性。

如需实现 reCAPTCHA 操作令牌,请执行以下操作:

  1. 为您的网站创建操作令牌密钥。 <0x

    Cloud 控制台

    1. 在 Google Cloud 控制台中,前往 Google Cloud Fraud Defense 页面。

      前往 Google Cloud Fraud Defense

    2. 验证项目名称是否显示在页面顶部的项目选择器中。

      如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。

    3. 选择密钥标签页。
    4. 点击创建密钥。
    5. 在显示名称字段中,输入密钥的显示名称。
    6. 根据您要为 WAF 创建 reCAPTCHA 密钥的平台,执行相应的操作:
      1. 对于应用类型,选择 Web。

        系统会显示网域列表部分。

      2. 为保护您的网域和子网域的 reCAPTCHA 密钥,请确保停用网域验证切换开关处于关闭状态。

        停用域名验证会带来安全风险,因为这样一来,网站就不受任何限制,任何人都可以访问和使用您的 reCAPTCHA 密钥。

      3. 输入您的网站的域名:

        1. 在网域列表部分中,点击添加网域。
        2. 在网域字段中,输入您的域名。
        3. 可选:要添加其他网域,请点击添加网域,然后在网域字段中输入其他网域的名称。 您最多可以添加 250 个网域。

          对于网站,reCAPTCHA 密钥对于您指定的网域和子网域是唯一的。如果您从多个网域传送您的网站,则可以指定多个网域。如果您指定了某个网域(例如 examplepetstore.com),则无需指定其子网域(例如 subdomain.examplepetstore.com)。对网域列表所做的更改可能需要长达 30 分钟的时间才会生效。

      4. 在其他设置中,开启您是否会在 Web 应用防火墙 (WAF) 中部署此密钥?切换开关。
      5. 从功能选项中,选择操作。

      6. 可选:开启您是否会使用验证?切换开关。

      7. 点击创建密钥。
      8. 新创建的密钥会列在 reCAPTCHA 密钥页面上。

    gcloud

    如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。

    在使用下面的命令数据之前,请先进行以下替换:

    • INTEGRATION_TYPE:集成类型。 指定 score 或 checkbox。
    • DISPLAY_NAME:密钥的名称。通常是网站名称。
    • DOMAIN_NAME:允许使用相应密钥的网站的网域或子网域。

      以英文逗号分隔列表的形式指定多个网域。 可选:指定 --allow-all-domains 以停用域名验证。

      停用域名验证会带来安全风险,因为这样一来,网站就不受任何限制,任何人都可以访问和使用您的 reCAPTCHA 密钥。

    • WAF_FEATURE:WAF 功能的名称。 指定 action-token。
    • WAF_SERVICE:WAF 服务提供商的名称。 为 Cloud Armor 指定 CA。

    执行 gcloud recaptcha keys create 命令:

    Linux、macOS 或 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

    响应中包含新创建的 reCAPTCHA 密钥。

    REST

    如需查看有关密钥类型和集成类型的 API 参考文档,请参阅密钥和集成类型。

    在使用任何请求数据之前,请先进行以下替换:

    • INTEGRATION_TYPE:集成类型。 指定 score 或 checkbox。
    • DISPLAY_NAME:密钥的名称。通常是网站名称。
    • DOMAIN_NAME:允许使用相应密钥的网站的网域或子网域。

      以英文逗号分隔列表的形式指定多个网域。 可选:指定 --allow-all-domains 以停用域名验证。

      停用域名验证会带来安全风险,因为这样一来,网站就不受任何限制,任何人都可以访问和使用您的 reCAPTCHA 密钥。

    • WAF_FEATURE:WAF 功能的名称。 指定 action-token。
    • WAF_SERVICE:WAF 服务提供商的名称。 为 Cloud Armor 指定 CA。
    • DEFAULT_SCORE_THRESHOLD:对于基于政策的验证密钥,此属性用于在未定义自定义分数阈值时,为密钥定义通用验证阈值。此功能处于预览版阶段。
    • ACTION_SCORE_THRESHOLDS:对于基于政策的质询密钥,此参数用于指定操作以及介于 0.0 和 1.0 之间的相应阈值分数。例如 login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'。此功能处于预览版阶段。

    HTTP 方法和网址:

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

    请求 JSON 正文:

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

    如需发送请求,请选择以下方式之一:

    curl

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    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

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $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

    您应该收到类似以下内容的 JSON 响应:

    
    {
      "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. 在网页上集成 reCAPTCHA JavaScript,并使用您创建的操作令牌密钥。如需了解相关说明,请参阅与您的操作令牌密钥的集成类型对应的文档。

  3. 从 reCAPTCHA 收到令牌后,请将该令牌附加到预定义的请求标头,格式如下:

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

    您可以使用 XHR、Ajax 或 Fetch API 等语言将令牌附加到预定义的请求标头。

    以下示例脚本展示了如何保护 execute 操作,以及如何使用 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>
      
      

实现 reCAPTCHA 会话令牌

在调用 execute() 后,reCAPTCHA JavaScript 会在最终用户的浏览器中将 reCAPTCHA 会话令牌设置为 Cookie。只要 reCAPTCHA JavaScript 保持运行,最终用户的浏览器就会携带并刷新该 Cookie。

如需以 Cookie 形式提供会话令牌,请在最终用户浏览的网页中安装会话令牌密钥,该网页至少应为需要保护的网页之前的一个网页。例如,如果您想保护结账页面,请在首页或商品页面上安装会话令牌密钥。

如需了解如何在网页上安装会话令牌密钥,请参阅将基于得分的密钥与前端集成。

您可以使用此 Cookie 来保护最终用户在特定网域上的后续请求和网页加载。会话令牌的默认有效期为 30 分钟。不过,如果最终用户停留在实现了会话令牌的网页上,reCAPTCHA 会定期刷新会话令牌,以防止其过期。

在需要 reCAPTCHA 保护的每个网页上安装会话令牌。 我们建议您使用 reCAPTCHA 保护每个网页,并使用 Cloud Armor 规则强制执行对所有网页的访问权限,但最终用户浏览的第一个网页除外。

以下是 reCAPTCHA 会话令牌示例:
   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

如需实现 reCAPTCHA 会话令牌,请执行以下操作:

  1. 为您的网站创建会话令牌密钥。 <0

    Cloud 控制台

    1. 在 Google Cloud 控制台中,前往 Google Cloud Fraud Defense 页面。

      前往 Google Cloud Fraud Defense

    2. 验证项目名称是否显示在页面顶部的项目选择器中。

      如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。

    3. 选择密钥标签页。
    4. 点击创建密钥。
    5. 在显示名称字段中,输入密钥的显示名称。
    6. 根据您要为 WAF 创建 reCAPTCHA 密钥的平台,执行相应的操作:
      1. 对于应用类型,选择 Web。

        系统会显示网域列表部分。

      2. 为保护您的网域和子网域的 reCAPTCHA 密钥,请确保停用网域验证切换开关处于关闭状态。

        停用域名验证会带来安全风险,因为这样一来,网站就不受任何限制,任何人都可以访问和使用您的 reCAPTCHA 密钥。

      3. 输入您的网站的域名:

        1. 在网域列表部分中,点击添加网域。
        2. 在网域字段中,输入您的域名。
        3. 可选:要添加其他网域,请点击添加网域,然后在网域字段中输入其他网域的名称。 您最多可以添加 250 个网域。

          对于网站,reCAPTCHA 密钥对于您指定的网域和子网域是唯一的。如果您从多个网域传送您的网站,则可以指定多个网域。如果您指定了某个网域(例如 examplepetstore.com),则无需指定其子网域(例如 subdomain.examplepetstore.com)。对网域列表所做的更改可能需要长达 30 分钟的时间才会生效。

      4. 在其他设置中,开启您是否会在 Web 应用防火墙 (WAF) 中部署此密钥?切换开关。
      5. 从功能选项中选择会话。

      6. 可选:开启停用域名验证。

        停用域名验证会带来安全风险,因为这样一来,网站就不受任何限制,任何人都可以访问和使用您的 reCAPTCHA 密钥。

      7. 点击创建密钥。
      8. 新创建的密钥会列在 reCAPTCHA 密钥页面上。

    gcloud

    如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。

    在使用下面的命令数据之前,请先进行以下替换:

    • INTEGRATION_TYPE:集成类型。 指定 score。
    • DISPLAY_NAME:密钥的名称。通常是网站名称。
    • DOMAIN_NAME:允许使用相应密钥的网站的网域或子网域。

      以英文逗号分隔列表的形式指定多个网域。 可选:指定 --allow-all-domains 以停用域名验证。

      停用域名验证会带来安全风险,因为这样一来,网站就不受任何限制,任何人都可以访问和使用您的 reCAPTCHA 密钥。

    • WAF_FEATURE:WAF 功能的名称。 指定 session-token。
    • WAF_SERVICE:WAF 服务提供商的名称。 为 Cloud Armor 指定 CA。

    执行 gcloud recaptcha keys create 命令:

    Linux、macOS 或 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

    响应中包含新创建的 reCAPTCHA 密钥。

    REST

    如需查看有关密钥类型和集成类型的 API 参考文档,请参阅密钥和集成类型。

    在使用任何请求数据之前,请先进行以下替换:

    • INTEGRATION_TYPE:集成类型。 指定 score。
    • DISPLAY_NAME:密钥的名称。通常是网站名称。
    • DOMAIN_NAME:允许使用相应密钥的网站的网域或子网域。

      以英文逗号分隔列表的形式指定多个网域。 可选:指定 --allow-all-domains 以停用域名验证。

      停用域名验证会带来安全风险,因为这样一来,网站就不受任何限制,任何人都可以访问和使用您的 reCAPTCHA 密钥。

    • WAF_FEATURE:WAF 功能的名称。 指定 session-token。
    • WAF_SERVICE:WAF 服务提供商的名称。 为 Cloud Armor 指定 CA。
    • DEFAULT_SCORE_THRESHOLD:对于基于政策的验证密钥,此属性用于在未定义自定义分数阈值时,为密钥定义通用验证阈值。此功能处于预览版阶段。
    • ACTION_SCORE_THRESHOLDS:对于基于政策的质询密钥,此参数用于指定操作以及介于 0.0 和 1.0 之间的相应阈值分数。例如 login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'。此功能处于预览版阶段。

    HTTP 方法和网址:

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

    请求 JSON 正文:

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

    如需发送请求,请选择以下方式之一:

    curl

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    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

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $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

    您应该收到类似以下内容的 JSON 响应:

    
    {
      "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. 向 reCAPTCHA JavaScript 添加会话令牌密钥和 waf=session。

    以下示例脚本展示了如何在网页上实现会话令牌:

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

实现 reCAPTCHA 验证任务页面

当您实现 reCAPTCHA 验证任务页面时,reCAPTCHA 会重定向到插页式广告页面,并在该页面上确定是否需要向用户显示 CAPTCHA 验证任务。因此,并非所有用户都能看到人机识别系统验证题目。

如需实现 reCAPTCHA 验证任务页面,请为您的网站创建验证任务页面密钥。

Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Google Cloud Fraud Defense 页面。

    前往 Google Cloud Fraud Defense

  2. 验证项目名称是否显示在页面顶部的项目选择器中。

    如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。

  3. 选择密钥标签页。
  4. 点击创建密钥。
  5. 在显示名称字段中,输入密钥的显示名称。
  6. 根据您要为 WAF 创建 reCAPTCHA 密钥的平台,执行相应的操作:
    1. 对于应用类型,选择 Web。
    2. 在其他设置中,开启您是否会在 Web 应用防火墙 (WAF) 中部署此密钥?切换开关。
    3. 从功能选项中,选择挑战。

    4. 开启停用域名验证。

      如果您为“验证”页面密钥停用域名验证,Cloud Armor 会验证网域。

    5. 点击创建密钥。
    6. 新创建的密钥会列在 reCAPTCHA 密钥页面上。

gcloud

如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。

在使用下面的命令数据之前,请先进行以下替换:

  • INTEGRATION_TYPE:集成类型。 指定 invisible。
  • DISPLAY_NAME:密钥的名称。通常是网站名称。
  • DOMAIN_NAME:允许使用相应密钥的网站的网域或子网域。 指定 --allow-all-domains。
  • WAF_FEATURE:WAF 功能的名称。 指定 challenge-page。
  • WAF_SERVICE:WAF 服务提供商的名称。 为 Cloud Armor 指定 CA。

执行 gcloud recaptcha keys create 命令:

Linux、macOS 或 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

响应中包含新创建的 reCAPTCHA 密钥。

REST

如需查看有关密钥类型和集成类型的 API 参考文档,请参阅密钥和集成类型。

在使用任何请求数据之前,请先进行以下替换:

  • INTEGRATION_TYPE:集成类型。 指定 invisible。
  • DISPLAY_NAME:密钥的名称。通常是网站名称。
  • DOMAIN_NAME:允许使用相应密钥的网站的网域或子网域。 指定 --allow-all-domains。
  • WAF_FEATURE:WAF 功能的名称。 指定 challenge-page。
  • WAF_SERVICE:WAF 服务提供商的名称。 为 Cloud Armor 指定 CA。
  • DEFAULT_SCORE_THRESHOLD:对于基于政策的验证密钥,此属性用于在未定义自定义分数阈值时,为密钥定义通用验证阈值。此功能处于预览版阶段。
  • ACTION_SCORE_THRESHOLDS:对于基于政策的质询密钥,此参数用于指定操作以及介于 0.0 和 1.0 之间的相应阈值分数。例如 login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'。此功能处于预览版阶段。

HTTP 方法和网址:

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

请求 JSON 正文:


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

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

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

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$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

您应该收到类似以下内容的 JSON 响应:


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

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

  "integrationType": "INVISIBLE",
 

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

  "wafFeature": "CHALLENGE_PAGE"
  

}
}

配置 Cloud Armor 安全政策

实现 reCAPTCHA for Cloud Armor 的功能后,您必须配置 Cloud Armor 安全政策以进行机器人管理。

如果您实现了 reCAPTCHA 验证任务页面,则必须执行以下操作:

  1. 将验证任务页面密钥与安全政策相关联。
  2. 配置安全政策规则,以重定向 reCAPTCHA 评估请求。

如果您实现了 reCAPTCHA action-token 或 session-token,则必须配置用于评估 reCAPTCHA 令牌的安全政策规则。

在配置 Cloud Armor 安全政策之前,请先了解 Cloud Armor 的 reCAPTCHA 令牌属性。

如需了解如何配置 Cloud Armor 安全政策以及如何将 reCAPTCHA WAF 密钥与安全政策搭配使用,请参阅配置漫游器管理规则。

获取 reCAPTCHA 得分

对于 reCAPTCHA 操作令牌和会话令牌,您可以从 X-Recaptcha-Wafdata 标头中获取 reCAPTCHA 分数。根据这些得分,您可以针对用户请求配置需要采取的任何自定义操作。

以下示例展示了 X-Recaptcha-Wafdata 标头示例:

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

您还可以在 Google Cloud Armor 日志中查看 reCAPTCHA 分数。

后续步骤