本页面介绍了如何创建 reCAPTCHA 密钥(也称为“密钥”)来验证网页上的用户互动。
reCAPTCHA 密钥表示为网站配置 reCAPTCHA Enterprise 的方式。该配置包含一些重要选项,例如是否显示人机识别系统质询。
准备工作
- 为 reCAPTCHA Enterprise 准备好环境。
- 确保您拥有以下 Identity and Access Management 角色:reCAPTCHA Enterprise Admin (
roles/recaptchaenterprise.admin
)。 - 选择最适合您的使用场景的密钥类型。
创建 reCAPTCHA 密钥
您可以为 Google Cloud 项目创建的 reCAPTCHA 密钥数量不受限制。最好为每个网站创建一个 reCAPTCHA 密钥。
我们建议为预演环境和生产环境创建单独的 reCAPTCHA 密钥。否则,测试环境中的数据可能会污染 reCAPTCHA 风险分析。
如需创建 reCAPTCHA 密钥,最简单的方法是通过 Google Cloud 控制台。或者,您也可以使用 reCAPTCHA Enterprise API 或 Google Cloud CLI。
控制台
在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise 页面。
验证项目名称是否显示在页面顶部的项目选择器中。
如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。
点击创建密钥。
- 在显示名字段中,输入密钥的显示名。
在选择平台类型菜单中,选择网站。
系统会显示网域列表部分。
-
输入您的网站的域名:
在网域列表部分中,点击添加网域。
- 在网域字段中,输入您的域名。
可选:要添加其他网域,请点击添加网域,然后在网域字段中输入其他网域的名称。 您最多可以添加 250 个网域。
对于网站,reCAPTCHA 密钥对于您指定的网域和子网域是唯一的。如果您从多个网域传送您的网站,则可以指定多个网域。如果您指定了网域(例如
examplepetstore.com
),则无需指定其子网域(例如subdomain.examplepetstore.com
)。
- 根据您要为网站创建的 reCAPTCHA 密钥类型,执行相应的操作:
- 可选:如果您想停用域名验证或允许 AMP 网页,请展开 Web 应用防火墙 (WAF)、域名验证、AMP 网页和验证部分。
-
如需保护您的网域和子网域的 reCAPTCHA 密钥,请务必关闭停用域名验证切换开关。
停用域名验证会带来安全风险,因为网站没有任何限制,因此任何人都可以访问和使用您的 reCAPTCHA 密钥。
- 如果您希望将基于得分的键用于 Accelerated Mobile Pages (AMP) 网页,请开启允许此键用于 AMP 网页切换开关。
对于非生产环境,如果您想要指定在为密钥创建任何评估时希望密钥返回的得分,请执行以下操作:
- 点击这是一个测试密钥切换开关。
- 在 Score 框中,指定一个 0 到 1.0 之间的得分。
- 点击创建密钥。
新创建的密钥会列在 reCAPTCHA 密钥页面上。
-
如需保护您的网域和子网域的 reCAPTCHA 密钥,请务必关闭停用域名验证切换开关。
- 展开 Web 应用防火墙 (WAF)、网域验证、AMP 网页和验证部分。
-
如需保护您的网域和子网域的 reCAPTCHA 密钥,请务必关闭停用域名验证切换开关。
停用域名验证会带来安全风险,因为网站没有任何限制,因此任何人都可以访问和使用您的 reCAPTCHA 密钥。
- 将使用复选框验证开关切换到开启状态。
- 选择适当的验证安全性选项。
验证安全性选项可控制提示用户进行二级挑战的可能性,在二级挑战中,将提示用户根据已确定的类别选择图像(例如,选择含摩托车或楼梯的图片)。
如果您想确保最佳的防欺诈保护,请选择难度较高(更安全,可防范漫游器)。
如果您选择最轻松的验证难度,则系统不太可能向用户显示提示。
-
对于非生产环境,如果您想要指定在为密钥创建任何评估时希望密钥返回的得分,请执行以下操作:
- 点击这是一个测试密钥切换开关。
- 在 Score 框中,指定一个 0 到 1.0 之间的得分。
- 选择相应的验证类型选项。
- 如果点击 Auto,系统有时会弹出验证问题。
- 无人机识别系统不会显示验证问题。
- “无法解析”验证会显示图片,但未通过验证。
- 点击创建密钥。
新创建的密钥会列在 reCAPTCHA 密钥页面上。
创建基于得分的 reCAPTCHA 密钥
创建复选框 reCAPTCHA 密钥
gcloud
如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。
在使用下面的命令数据之前,请先进行以下替换:
- DISPLAY_NAME:密钥的名称。通常是网站名称。
- INTEGRATION_TYPE:集成类型。
根据键的类型,指定以下值:
score
,适用于基于得分的键。checkbox
用于复选框键。
- DOMAIN_NAME:获准使用相应密钥的网站的网域或子网域。
请以逗号分隔列表的形式指定多个网域。
停用域名验证会带来安全风险,因为网站没有任何限制,因此任何人都可以访问和使用您的 reCAPTCHA 密钥。
执行 gcloud recaptcha keys create 命令:
Linux、macOS 或 Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME
响应中包含新创建的 reCAPTCHA 密钥。
REST
如需了解密钥类型和集成类型的 API 参考信息,请参阅密钥和集成类型。在使用任何请求数据之前,请先进行以下替换:
- DISPLAY_NAME:密钥的名称。通常是网站名称。
- INTEGRATION_TYPE:集成类型。
根据键的类型,指定以下值:
score
,适用于基于得分的键。checkbox
用于复选框键。
- DOMAIN_NAME:获准使用相应密钥的网站的网域或子网域。
请以逗号分隔列表的形式指定多个网域。
停用域名验证会带来安全风险,因为网站没有任何限制,因此任何人都可以访问和使用您的 reCAPTCHA 密钥。
HTTP 方法和网址:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
请求 JSON 正文:
{ "displayName": "DISPLAY_NAME", "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
如需发送请求,请选择以下方式之一:
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/6Ldqgs0UAAAAAIn4k7YxEB-LwEh5S9-Gv6IIWB8m", "displayName": "DISPLAY_NAME", "webSettings": { "allowAllDomains": false, "allowedDomains": [ DOMAINS ], "allowAmpTraffic": false, "integrationType": "SCORE", "challengeSecurityPreference": "CHALLENGE_SECURITY_PREFERENCE_UNSPECIFIED" } }
(可选)查找旧版 reCAPTCHA 密钥
如果您要与使用非企业版 reCAPTCHA 的第三方应用集成,则需要旧版密钥。
对于您创建的每个网站密钥,reCAPTCHA Enterprise 都会创建一个旧版 reCAPTCHA 密钥(旧密钥),您可以将其用于第三方应用。
如需查找旧密钥,请执行以下操作:
在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise 页面。
在企业密钥部分,找到您创建的 reCAPTCHA 密钥,然后点击该密钥。
在密钥详细信息页面的集成标签页下,点击使用旧版密钥。系统会打开一个对话框,其中说明了如何使用旧密钥。