为移动应用创建 reCAPTCHA 密钥

本页介绍了如何创建 reCAPTCHA 密钥(也称为密钥),以验证移动应用上的用户互动。

reCAPTCHA 密钥代表如何为移动应用 (app) 配置 reCAPTCHA。

准备工作

  • 为 reCAPTCHA 准备环境
  • 确保您具有以下 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。

控制台

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

    前往 reCAPTCHA

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

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

  3. 选择密钥 标签页。
  4. 点击创建密钥
  5. 显示名 字段中,输入密钥的显示名。
  6. 根据您要为移动应用创建的 reCAPTCHA 密钥的类型,执行相应的操作:
  7. 为 iOS 应用创建 reCAPTCHA 密钥

    我们建议为每个 iOS 应用创建一个 reCAPTCHA 密钥。

    1. 对于应用类型,选择iOS
      1. iOS 软件包 ID 列表 部分中,点击添加 iOS 软件包 ID
      2. 软件包 ID 字段中,输入 iOS 软件包 ID 的名称。

      3. 可选:如需添加其他软件包 ID,请点击添加 iOS 软件包 ID ,然后在软件包 ID字段中输入 iOS 软件包 ID 的名称。
      4. 为了保护您的软件包 ID 的 reCAPTCHA 密钥,请确保关闭 停用软件包 ID 验证 切换开关。
      5. 可选:提供 Apple Developer 设置

        我们建议您提供此数据,因为这样 reCAPTCHA 就可以为您的流量提供更准确的风险评分。

        输入以下信息:

        • 私钥 (.p8):此密钥在 Apple 开发者中心的“证书、标识符和描述文件”下生成。
        • 密钥标识符:Apple 开发者密钥标识符(10 个字符的字符串)。
        • 团队 ID:Apple 团队 ID(10 个字符的字符串),拥有用于构建应用的配置文件。
      6. 可选:点击下一步(可选)
        1. 对于非生产环境,如果您想指定在为其创建任何评估时密钥返回的得分,请执行以下操作:

          1. 其他设置 中,点击您创建此密钥是否仅用于测试 目的? 切换开关。
          2. 使用设置得分 滑块指定介于 0 到 1.0 之间的得分。
      7. 点击创建密钥
      8. 新创建的密钥会列在 reCAPTCHA 密钥 页面上。

    为 Android 应用创建 reCAPTCHA 密钥

    1. 对于应用类型,选择Android
    2. Android 软件包列表 部分中,点击 添加 Android 软件包
    3. Android 软件包 字段中,输入 Android 软件包的名称。
    4. 可选:如需添加其他软件包,请点击 添加 Android 软件包 ,然后在 Android 软件包 字段中输入其他 Android 软件包的名称。
    5. 如需强制 reCAPTCHA 密钥仅在您的应用中使用,请关闭 停用软件包名称验证 切换开关。
    6. 如果您想为除 Google Play 商店之外的其他应用商店中提供的应用创建密钥,请开启支持在 Google Play 商店之外分发的应用
    7. 可选:点击下一步(可选)
      1. 对于非生产环境,如果您想指定在为其创建任何评估时密钥返回的得分,请执行以下操作:

        1. 其他设置 中,点击您创建此密钥是否仅用于测试 目的? 切换开关。
        2. 使用设置得分 滑块指定介于 0 到 1.0 之间的得分。
    8. 点击创建密钥
    9. 新创建的密钥会列在 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": {},
}

后续步骤