本文档介绍了如何将有效的网站密钥从 reCAPTCHA 传统版迁移到Google Cloud 项目的 reCAPTCHA 层级。迁移过程需要 5-10 分钟才能完成,并且不需要更改代码。
如果您在 reCAPTCHA 管理控制台中管理密钥,则表示您使用的是 reCAPTCHA 传统版,该版本的功能有限,并且对每月用量有严格限制。最新的 reCAPTCHA 功能仅适用于在 Google Cloud 项目中管理的网站密钥。如需详细了解可用功能,请参阅比较 reCAPTCHA 层级。
完成迁移过程后,会发生以下变化:
- 您的网站密钥会以 Google Cloud 项目的形式提供,无需任何更改。
- 您现有的 reCAPTCHA 集成将继续有效,无需更改代码。您可以保留相同的网页插桩和后端调用。不过,如需使用账号防护工具或密码泄露检测等功能,您必须修改网页插桩和后端调用。如需了解详情,请参阅在迁移后使用 reCAPTCHA 功能。
- 当您超出 reCAPTCHA 的每月免费配额(即每月 10,000 次评估)时,系统会向您收费。如需了解详情,请参阅结算信息。
准备工作
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
reCAPTCHA 要求在项目上关联并启用结算功能才能进行迁移。您可以使用信用卡或现有的 Google Cloud 项目结算 ID 来启用结算功能。如果您需要结算方面的帮助,请与 Cloud Billing 支持团队联系。
- 如果要在 Google Cloud 控制台外部运行 gcloud CLI,请安装并初始化 gcloud CLI。如需查看相关说明,请参阅以下内容:
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
启用 reCAPTCHA Enterprise API
所有 reCAPTCHA 层级(Essentials、Standard 和 Enterprise)均在 reCAPTCHA Enterprise API 上运行。
在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise API 页面。
验证项目名称是否显示在页面顶部的项目选择器中。
如果您没有看到项目名称,请点击项目选择器,然后选择您的项目。
- 点击启用。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- 如需在 gcloud 会话中设置 Google Cloud 项目,请运行
gcloud config set project
命令。将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。gcloud config set project
PROJECT_ID - 如需启用 reCAPTCHA Enterprise API,请运行
gcloud services enable
命令:gcloud services enable recaptchaenterprise.googleapis.com
- 如需验证 reCAPTCHA Enterprise API 是否已启用,请运行
gcloud services list
命令:gcloud services list --enabled
验证 reCAPTCHA Enterprise API 是否在已启用的 API 列表中列出。
迁移到 reCAPTCHA
如需将 reCAPTCHA 传统版迁移到 reCAPTCHA,请从 reCAPTCHA 管理控制台选择有效的网站密钥,然后迁移网站密钥。您可以迁移一个或多个有效网站密钥。但是,一次只能迁移一个网站密钥。
要执行迁移过程,您必须有满足以下要求的 reCAPTCHA 用户账号:
- 在 reCAPTCHA 管理控制台中,用户账号被列为要迁移的网站密钥的所有者。
- 对于启用了 reCAPTCHA Enterprise API 的 Google Cloud 项目,该用户账号具有以下 IAM 角色之一:
- Project Owner (
roles/owner
) - Project Editor (
roles/editor
) - reCAPTCHA Admin (
roles/recaptchaenterprise.admin
)
- Project Owner (
使用 Google Cloud 控制台、Cloud Shell、Google Cloud CLI 或 reCAPTCHA Enterprise API 迁移网站密钥。
迁移网站密钥不会影响密钥或 API 端点;它会将密钥添加到企业许可中。
在 Google Cloud 控制台中,前往 reCAPTCHA 页面。
验证项目名称是否显示在页面顶部的资源选择器中。 如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。
在传统密钥部分中,找到要迁移的密钥,然后点击升级密钥。
如需完成所选密钥的迁移,请点击确认。
在 Google Cloud 控制台中,前往 Cloud Shell。
如果出现提示,请点击授权。
选择并复制您用于将 reCAPTCHA 与网页集成的有效网站密钥:
- 转到 reCAPTCHA 管理控制台,然后点击 。
选择网站密钥。迁移支持以下 reCAPTCHA 网站密钥:reCAPTCHA v2 Checkbox、reCAPTCHA v2 Invisible 和 reCAPTCHA v3。
要复制网站密钥,请点击 Copy site key。
迁移网站密钥。
如以下示例所示运行
gcloud recaptcha keys migrate
命令:gcloud recaptcha keys migrate
SITE_KEY --projectPROJECT-ID 请提供以下值:
- SITE_KEY:您从 reCAPTCHA 管理控制台复制的有效网站密钥。
- PROJECT-ID:启用了 reCAPTCHA Enterprise API 的 Google Cloud 项目的 ID。
如需配置身份验证,请运行以下
gcloud
命令:gcloud auth login
使用拥有所选网站密钥且具有以下角色之一的 reCAPTCHA 用户账号登录:Project Owner、Project Editor 或 reCAPTCHA Enterprise Admin 角色。
选择并复制您用于将 reCAPTCHA 与网页集成的有效网站密钥:
- 转到 reCAPTCHA 管理控制台,然后点击 。
选择网站密钥。迁移支持以下 reCAPTCHA 网站密钥:reCAPTCHA v2 Checkbox、reCAPTCHA v2 Invisible 和 reCAPTCHA v3。
要复制网站密钥,请点击 Copy site key。
迁移网站密钥。
如以下示例所示运行
gcloud recaptcha keys migrate
命令:gcloud recaptcha keys migrate
SITE_KEY --projectPROJECT-ID 请提供以下值:
- SITE_KEY:您从 reCAPTCHA 管理控制台复制的有效网站密钥。
- PROJECT-ID:启用了 reCAPTCHA Enterprise API 的 Google Cloud 项目的 ID。
选择并复制您用于将 reCAPTCHA 与网页集成的有效网站密钥:
- 转到 reCAPTCHA 管理控制台,然后点击 。
选择网站密钥。迁移支持以下 reCAPTCHA 网站密钥:reCAPTCHA v2 Checkbox、reCAPTCHA v2 Invisible 和 reCAPTCHA v3。
要复制网站密钥,请点击 Copy site key。
迁移网站密钥。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:启用了 reCAPTCHA API 的 Google Cloud 项目的 ID。
- SITE_KEY:您从 reCAPTCHA 管理控制台复制的有效网站密钥。
HTTP 方法和网址:
POST https://recaptchaenterprise.googleapis.com/v1/projects/
PROJECT_ID /keys/SITE_KEY :migrate如需发送请求,请选择以下方式之一:
执行以下命令:
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"执行以下命令:
$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" } }
如需验证网站密钥是否已迁移,请按如下所述操作:
前往 reCAPTCHA 页面,然后在 reCAPTCHA 密钥部分中找到迁移后的网站密钥。
运行
gcloud recaptcha keys list
命令并在密钥列表中找到迁移后的网站密钥。运行
gcloud recaptcha keys list
命令并在密钥列表中找到迁移后的网站密钥。
迁移到 reCAPTCHA 后,您可以继续使用 siteverify 方法评估用户的 reCAPTCHA 响应令牌。
您可以撤消 reCAPTCHA 用户账号中的 reCAPTCHA Enterprise Admin (roles/recaptchaenterprise.admin
) IAM 角色。您可以要求管理员撤消访问权限,也可以按照授予、更改和撤消访问权限中的说明操作。