从 reCAPTCHA(非企业版)迁移

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

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

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

准备工作

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

    转到“项目选择器”

  2. 确保您的 Google Cloud 项目已启用结算功能

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

  3. 如果您要在 Google Cloud 控制台外部运行 gcloud CLI,请安装并初始化 gcloud CLI。有关说明,请参阅

    安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

    gcloud init

启用 reCAPTCHA Enterprise API

控制台

  1. 在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise API 页面。

    转到 reCAPTCHA Enterprise API

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

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

  3. 点击启用

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 如需在 gcloud 会话中设置 Google Cloud 项目,请运行 gcloud config set project 命令。将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。
           gcloud config set project PROJECT_ID
           
  3. 如需启用 reCAPTCHA Enterprise API,请运行 gcloud services enable 命令:
             gcloud services enable recaptchaenterprise.googleapis.com
           
  4. 如需验证 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. 使用 Google Cloud 控制台、Cloud Shell、Google Cloud CLI 或 reCAPTCHA Enterprise API 迁移网站密钥:

    Google Cloud 控制台

    1. 在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise 页面。

      转到 reCAPTCHA Enterprise

    2. 验证项目名称是否显示在页面顶部的资源选择器中。如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。

    3. 传统密钥部分,找到要迁移的密钥,然后点击升级密钥

    4. 如需完成所选密钥的迁移,请点击确认

    Cloud Shell

    1. Google Cloud 控制台中,前往 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 CLI

    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. 如需验证网站密钥是否已迁移,请按如下所述操作:

    Google Cloud 控制台

    转到 reCAPTCHA Enterprise 页面,然后在 Enterprise 密钥部分找到已迁移的网站密钥。

    转到 reCAPTCHA Enterprise

    Cloud Shell

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

    gcloud CLI

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

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

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

后续步骤