从 reCAPTCHA 迁移(非 Enterprise 版)

本文档介绍如何使用有效网站密钥从 reCAPTCHA(非 Enterprise 版)迁移到 reCAPTCHA Enterprise。迁移过程需要 5-10 分钟才能完成,并且不需要更改代码。

如果您当前访问 reCAPTCHA 管理控制台,那么您使用的是非 Enterprise 版 reCAPTCHA,它的功能有限,并且对每月用量有严格限制。如需详细了解功能比较,请参阅 reCAPTCHA 版本之间的功能比较

迁移后,您将成为 reCAPTCHA Enterprise 用户,每个月的请求数超过 100 万时才需要付费。如需了解详情,请参阅 reCAPTCHA Enterprise 价格

准备工作

  1. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  2. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

    reCAPTCHA Enterprise 要求在项目上关联并启用结算功能才能访问 API。您可以使用信用卡或现有的 Google Cloud 项目结算 ID 来启用结算功能。如果您需要结算方面的帮助,请与 Cloud Billing 支持团队联系。

  3. 如果要在 Google Cloud Console 外部运行 gcloud 工具,请安装并初始化 Cloud SDK。如需查看相关说明,请参阅以下内容: 安装并初始化 Cloud SDK

启用 reCAPTCHA Enterprise API

控制台

  1. 在 Cloud Console 中,转到 reCAPTCHA Enterprise API 页面。

    转到 reCAPTCHA Enterprise API

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

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

  3. 点击启用

gcloud

  1. 如需在 gcloud 会话中设置 Google Cloud 项目,请运行 gcloud config set project 命令。将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。
           gcloud config set project PROJECT_ID
           
  2. 如需启用 reCAPTCHA Enterprise API,请运行 gcloud services enable 命令:
             gcloud services enable recaptchaenterprise.googleapis.com
           
  3. 如需验证 reCAPTCHA Enterprise API 是否已启用,请运行 gcloud services list 命令:
             gcloud services list --enabled
           

    验证 reCAPTCHA Enterprise API 是否在已启用的 API 列表中列出。

迁移到 reCAPTCHA Enterprise

从非 Enterprise 版 reCAPTCHA 迁移到 reCAPTCHA Enterprise 涉及从 reCAPTCHA 管理控制台选择有效的网站密钥以及迁移网站密钥。您可以迁移一个或多个有效网站密钥。但是,一次只能迁移一个网站密钥。

要执行迁移过程,您必须有满足以下要求的 reCAPTCHA 用户帐号:

  • 在 reCAPTCHA 管理控制台中,用户帐号被列为要迁移的网站密钥的所有者。
  • 对于启用了 reCAPTCHA Enterprise API 的 Google Cloud 项目,该用户帐号具有以下 IAM 角色之一:
    • Project Owner (roles/owner)
    • Project Editor (roles/editor)
    • reCAPTCHA Enterprise Admin (roles/recaptchaenterprise.admin)
    如果您的用户帐号没有这些角色之一,请让您的管理员授予其中一个角色,或按照授予、更改和撤消访问权限中的说明操作。
  1. 使用 Cloud Shell、gcloud 命令行工具或 reCAPTCHA Enterprise API 迁移网站密钥。

    Cloud Shell

    1. Cloud Console 中,转到 Cloud Shell
      转到 Cloud Shell
    2. 如果出现提示,请点击授权
    3. 选择并复制您用于将 reCAPTCHA 与网页集成的有效网站密钥:

      1. 转到 reCAPTCHA 管理控制台,然后点击
      2. 选择网站密钥。迁移支持以下 reCAPTCHA 网站密钥:reCAPTCHA v2 Checkbox、reCAPTCHA v2 Invisible 和 reCAPTCHA v3。

      3. 要复制网站密钥,请点击 Copy site key

    4. 迁移网站密钥。

      如以下示例所示运行 gcloud recaptcha keys migrate 命令:

       gcloud recaptcha keys migrate SITE_KEY --project PROJECT-ID
      

      请提供以下值:

      • SITE_KEY:您从 reCAPTCHA 管理控制台复制的有效网站密钥。
      • PROJECT-ID:启用了 reCAPTCHA Enterprise API 的 Google Cloud 项目的 ID。

    gcloud 工具

    1. 如需配置身份验证,请运行以下 gcloud 命令:

      gcloud auth login
      

      使用拥有所选网站密钥且具有以下角色之一的 reCAPTCHA 用户帐号登录:Project OwnerProject EditorreCAPTCHA Enterprise Admin 角色。

    2. 选择并复制您用于将 reCAPTCHA 与网页集成的有效网站密钥:

      1. 转到 reCAPTCHA 管理控制台,然后点击
      2. 选择网站密钥。迁移支持以下 reCAPTCHA 网站密钥:reCAPTCHA v2 Checkbox、reCAPTCHA v2 Invisible 和 reCAPTCHA v3。

      3. 要复制网站密钥,请点击 Copy site key

    3. 迁移网站密钥。

      如以下示例所示运行 gcloud recaptcha keys migrate 命令:

       gcloud recaptcha keys migrate SITE_KEY --project PROJECT-ID
      

      请提供以下值:

      • SITE_KEY:您从 reCAPTCHA 管理控制台复制的有效网站密钥。
      • PROJECT-ID:启用了 reCAPTCHA Enterprise API 的 Google Cloud 项目的 ID。

    REST API

    1. 选择并复制您用于将 reCAPTCHA 与网页集成的有效网站密钥:

      1. 转到 reCAPTCHA 管理控制台,然后点击
      2. 选择网站密钥。迁移支持以下 reCAPTCHA 网站密钥:reCAPTCHA v2 Checkbox、reCAPTCHA v2 Invisible 和 reCAPTCHA v3。

      3. 要复制网站密钥,请点击 Copy site key

    2. 迁移网站密钥。

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

      • PROJECT_ID:启用了 reCAPTCHA Enterprise API 的 Google Cloud 项目的 ID。
      • SITE_KEY:您从 reCAPTCHA 管理控制台复制的有效网站密钥。

      HTTP 方法和网址:

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

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

      curl

      执行以下命令:

      curl -X POST \
      -H "Authorization: Bearer "$(gcloud auth print-access-token) \
      -H "Content-Type: application/json; charset=utf-8" \
      -d "" \
      "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys/SITE_KEY:migrate"

      PowerShell

      执行以下命令:

      $cred = gcloud auth print-access-token
      $headers = @{ "Authorization" = "Bearer $cred" }

      Invoke-WebRequest `
      -Method POST `
      -Headers $headers `
      -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys/SITE_KEY:migrate" | Select-Object -Expand Content

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

      {
        "name": "projects/PROJECT-ID/keys/6Ldqgs0UAAAAAIn4k7YxEB-LwEh5S9-Gv6IIWB8m",
        "displayName": "My site key",
        "webSettings": {
          "allowAllDomains": false,
          "allowedDomains": [
            recaptcha.net
          ],
          "allowAmpTraffic": false,
          "integrationType": "SCORE",
          "challengeSecurityPreference": "CHALLENGE_SECURITY_PREFERENCE_UNSPECIFIED"
        }
      }
      

  2. 如需验证网站密钥是否已迁移,请按如下所述操作:

    Cloud Shell

    运行 gcloud recaptcha keys list 命令并在密钥列表中找到迁移后的网站密钥。

    gcloud 工具

    运行 gcloud recaptcha keys list 命令并在密钥列表中找到迁移后的网站密钥。

    控制台

    转到 reCAPTCHA Enterprise 页面,然后在密钥列表中找到迁移后的网站密钥。

    转到 reCAPTCHA Enterprise

迁移到 reCAPTCHA Enterprise 后,您可以继续使用 siteverify 方法评估用户的 reCAPTCHA 响应令牌。

您可以撤消 reCAPTCHA 用户帐号中的 reCAPTCHA Enterprise Admin (roles/recaptchaenterprise.admin) IAM 角色。您可以要求管理员撤消访问权限,也可以按照授予、更改和撤消访问权限中的说明操作。

后续步骤