本文档介绍了如何将有效网站密钥从 reCAPTCHA Classic 迁移到Google Cloud 项目中的 reCAPTCHA。您可以使用 reCAPTCHA 管理控制台(推荐)或 Google Cloud 控制台迁移网站密钥。 迁移过程需要 5-10 分钟才能完成,并且不需要更改代码。
如果您在 reCAPTCHA 管理控制台中管理密钥,那么您使用的是 reCAPTCHA Classic。只有在 Google Cloud 项目中管理的网站密钥才能使用最新的 reCAPTCHA 功能。如需详细了解可用功能,请参阅比较 reCAPTCHA 层级。
完成迁移过程后,会发生以下变化:
- 您的网站密钥可在 Google Cloud 项目中找到,无需进行任何更改。
- 您现有的 reCAPTCHA 集成会继续正常运行,无需更改代码。您可以保留相同的网页插桩和后端调用。不过,如需使用账号保护器或密码保护等功能,您必须修改网页插桩和后端调用。如需了解详情,请参阅在迁移后使用 reCAPTCHA 功能。
- 当您超出 reCAPTCHA 的每月免费限额(每月 10,000 次评估)时,系统会向您收取费用。如需了解详情,请参阅结算信息。
使用 reCAPTCHA 管理控制台进行迁移
前往 reCAPTCHA 管理控制台。
选择要将密钥迁移到的项目。
选择要迁移的密钥。
点击提交。
Google Cloud 控制台随即会打开,其中包含您的项目和您迁移的密钥。
使用 Google Cloud 控制台进行迁移
准备工作
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
reCAPTCHA 要求在项目上关联并启用结算功能才能进行迁移。您可以使用信用卡或现有的 Google Cloud 项目结算 ID 来启用结算功能。如果您需要结算方面的帮助,请与 Cloud Billing 支持团队联系。
- 如果要在 Google Cloud 控制台外部运行 gcloud CLI,请安装并初始化 gcloud CLI。如需相关说明,请参阅
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
启用 reCAPTCHA Enterprise API
所有 reCAPTCHA 层级(Essentials、Standard 和 Enterprise)均基于 reCAPTCHA Enterprise API 运行。
控制台
在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise API 页面。
验证项目名称是否显示在页面顶部的项目选择器中。
如果您没有看到项目名称,请点击项目选择器,然后选择您的项目。
- 点击启用。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
- 如需在 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 控制台、Google Cloud CLI 或 reCAPTCHA Enterprise API 迁移网站密钥。
迁移网站密钥不会影响密钥或 API 端点,而是将密钥添加到企业许可中。
Google Cloud 控制台
在 Google Cloud 控制台中,前往 reCAPTCHA 页面。
验证项目名称是否显示在页面顶部的资源选择器中。 如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。
在旧版密钥部分中,找到要迁移的密钥,然后点击升级密钥。
如需完成所选密钥的迁移,请点击确认。
gcloud CLI
如需配置身份验证,请运行以下
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 --project PROJECT-ID
请提供以下值:
- SITE_KEY:您从 reCAPTCHA 管理控制台复制的有效网站密钥。
- PROJECT-ID:启用了 reCAPTCHA Enterprise API 的 Google Cloud 项目的 ID。
REST API
选择并复制您用于将 reCAPTCHA 与网页集成的有效网站密钥:
- 转到 reCAPTCHA 管理控制台,然后点击 。
选择网站密钥。迁移支持以下 reCAPTCHA 网站密钥:reCAPTCHA v2 Checkbox、reCAPTCHA v2 Invisible 和 reCAPTCHA v3。
要复制网站密钥,请点击 Copy site key。
迁移网站密钥。 <0
在使用任何请求数据之前,请先进行以下替换:
- 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
执行以下命令:
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" } }
如需验证网站密钥是否已迁移,请按如下所述操作:
Google Cloud 控制台
前往 reCAPTCHA 页面,然后在 reCAPTCHA 密钥部分中找到迁移后的网站密钥。
gcloud CLI
运行
gcloud recaptcha keys list命令并在密钥列表中找到迁移后的网站密钥。
迁移到 reCAPTCHA 后,您可以继续使用 siteverify 方法评估用户的 reCAPTCHA 响应令牌。如需了解有关响应的信息,请参阅 siteverify method 的响应。
网站密钥迁移到 reCAPTCHA 后,系统会开始记录其使用情况,并在 1 小时内显示在 Google Cloud 控制台中,包括使用情况和得分相关的信息中心。迁移之前的用量通常不会显示在 Google Cloud 控制台中。
您可以撤消 reCAPTCHA 用户账号中的 reCAPTCHA Enterprise Admin (roles/recaptchaenterprise.admin) IAM 角色。您可以要求管理员撤消访问权限,也可以按照授予、更改和撤消访问权限中的说明操作。