本页面介绍了如何创建 reCAPTCHA 密钥(也称为“密钥”),以验证用户在移动应用上的互动情况。
reCAPTCHA 密钥代表如何为移动应用配置 reCAPTCHA Enterprise。
准备工作
- 为 reCAPTCHA Enterprise 准备好环境。
- 确保您拥有以下 Identity and Access Management 角色:reCAPTCHA Enterprise Admin (
roles/recaptchaenterprise.admin
)。
创建 reCAPTCHA 密钥
您只能为移动应用创建基于得分的键。
我们建议您在为移动应用创建 reCAPTCHA 密钥时遵循以下做法:
- 为每个移动应用创建一个 reCAPTCHA 密钥。
对于 Android,请针对以下情况创建单独的密钥:
- Android 软件包仅在 Google Play 商店中提供。
- Android 软件包仅适用于非 Google Play 商店应用商店。
为预演环境和生产环境创建单独的 reCAPTCHA 密钥。否则,测试环境中的数据可能会污染 reCAPTCHA 风险分析。
如需创建 reCAPTCHA 密钥,最简单的方法是通过 Google Cloud 控制台。或者,您也可以使用 reCAPTCHA Enterprise API 或 Google Cloud CLI。
控制台
在 Google Cloud 控制台中,前往 reCAPTCHA Enterprise 页面。
验证项目名称是否显示在页面顶部的项目选择器中。
如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。
点击创建密钥。
- 在显示名字段中,输入密钥的显示名。
- 根据您要为移动应用创建的 reCAPTCHA 密钥类型,执行相应的操作:
- 在选择平台类型菜单中,选择 iOS 应用。
- 在 iOS 软件包 ID 列表部分中,点击添加 iOS 软件包 ID。
在软件包 ID 字段中,输入您的 iOS 软件包 ID 的名称。
- 可选:如需添加其他软件包 ID,请点击添加 iOS 软件包 ID,然后在软件包 ID 字段中输入 iOS 软件包 ID 的名称。
可选:提供 Apple Developer 设置。
我们建议您提供这些数据,因为它可以让 reCAPTCHA Enterprise 为您的流量提供更准确的风险评分。
输入以下信息:
- 私钥 (.p8):私钥在 Apple 开发者中心的“证书、标识符和个人资料”下生成。
- 密钥标识符:Apple 开发者密钥标识符(10 个字符的字符串)。
- 团队 ID:拥有用于构建应用的预配配置文件的 Apple 团队 ID(10 个字符的字符串)。
- 展开软件包 ID 验证和密钥类型。
- 如需保护软件包 ID 的 reCAPTCHA 密钥,请确保将停用软件包 ID 验证切换开关关闭。
-
对于非生产环境,如果您想指定该密钥在创建任何评估时希望返回的得分,请执行以下操作:
- 点击这是一个测试密钥切换开关。
- 在 Score 框中,指定一个 0 到 1.0 之间的得分。
- 点击创建密钥。
- 在 Choose platform type 菜单中,选择 Android app。
- 在 Android 软件包列表部分中,点击添加 Android 软件包。
在 Android 软件包字段中,输入您的 Android 软件包的名称。
- 可选:要添加其他软件包,请点击添加 Android 软件包,然后在 Android 软件包字段中输入其他 Android 软件包的名称。
- 展开软件包名称验证、应用分发和测试密钥。
- 如需强制仅允许在您的应用中使用 reCAPTCHA 密钥,请关闭停用软件包名称验证切换开关。
- 如果您要为 Google Play 商店以外的其他应用商店提供的应用创建密钥,请开启支持在 Google Play 商店之外分发的应用。
-
对于非生产环境,如果您想指定该密钥在创建任何评估时希望返回的得分,请执行以下操作:
- 点击这是一个测试密钥切换开关。
- 在 Score 框中,指定一个 0 到 1.0 之间的得分。
- 点击创建密钥。
为 iOS 应用创建 reCAPTCHA 密钥
我们建议您为每个 iOS 应用创建一个 reCAPTCHA 密钥。
新创建的密钥会列在 reCAPTCHA 密钥页面上。
为 Android 应用创建 reCAPTCHA 密钥
新创建的密钥会列在 reCAPTCHA 密钥页面上。
gcloud(iOS 版)
如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。
在使用下面的命令数据之前,请先进行以下替换:
- DISPLAY_NAME:密钥的名称。通常是网站名称。
- BUNDLE_IDs:获准使用此密钥的应用的 iOS 软件包 ID。以英文逗号分隔的列表形式指定多个软件包 ID。
执行 gcloud recaptcha keys create 命令:
Linux、macOS 或 Cloud Shell
gcloud recaptcha keys create \ --display-name=DISPLAY_NAME \ --ios --bundle-ids=BUNDLE_IDs
Windows (PowerShell)
gcloud recaptcha keys create ` --display-name=DISPLAY_NAME ` --ios --bundle-ids=BUNDLE_IDs
Windows (cmd.exe)
gcloud recaptcha keys create ^ --display-name=DISPLAY_NAME ^ --ios --bundle-ids=BUNDLE_IDs
响应中包含新创建的 reCAPTCHA 密钥。
gcloud (Android)
如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。
在使用下面的命令数据之前,请先进行以下替换:
- DISPLAY_NAME:密钥的名称。通常是网站名称。
- PACKAGE_NAMES:允许使用相应密钥的应用的 Android 软件包名称。以英文逗号分隔的列表形式指定多个软件包名称。
执行 gcloud recaptcha keys create 命令:
Linux、macOS 或 Cloud Shell
gcloud recaptcha keys create \ --display-name=DISPLAY_NAME \ --android --package-names=PACKAGE_NAMES
Windows (PowerShell)
gcloud recaptcha keys create ` --display-name=DISPLAY_NAME ` --android --package-names=PACKAGE_NAMES
Windows (cmd.exe)
gcloud recaptcha keys create ^ --display-name=DISPLAY_NAME ^ --android --package-names=PACKAGE_NAMES
响应中包含新创建的 reCAPTCHA 密钥。
REST(iOS 版)
在使用任何请求数据之前,请先进行以下替换:
- DISPLAY_NAME:密钥的名称。通常是应用名称。
- BUNDLE_IDs:获准使用此密钥的应用的 iOS 软件包 ID。以英文逗号分隔的列表形式指定多个软件包 ID。
HTTP 方法和网址:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
请求 JSON 正文:
{ "displayName": "DISPLAY_NAME", "iosSettings": { "allowedBundleIds":"BUNDLE_IDs" } }
如需发送请求,请选择以下方式之一:
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/6LfhtywnAAAAABY3sCS2duZ6A55kmDXz-PNEgKgT", "displayName": "DISPLAY_NAME", "iosSettings": { "allowAllBundleIds": false, "allowedBundleIds": [ BUNDLE_IDS ] }, "labels": {}, }
REST (Android)
在使用任何请求数据之前,请先进行以下替换:
- DISPLAY_NAME:密钥的名称。通常是应用名称。
- PACKAGE_NAMES:允许使用相应密钥的应用的 Android 软件包名称。以英文逗号分隔的列表形式指定多个软件包名称。
HTTP 方法和网址:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
请求 JSON 正文:
{ "displayName": "DISPLAY_NAME", "androidSettings": { "allowedPackageNames":"PACKAGE_NAMES" } }
如需发送请求,请选择以下方式之一:
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/6LcioSknAAAAABrjlMuZv2fjIGYMqwaAFC9izhoy", "displayName": "DISPLAY_NAME", "androidSettings": { "allowAllPackageNames": false, "allowedPackageNames": [ PACKAGE_NAMES ], "supportNonGoogleAppStoreDistribution": false }, "labels": {}, }