快速入门:在非 Google Cloud 环境中设置 reCAPTCHA Enterprise

本快速入门介绍了如何在以下情况下在非 Google Cloud 环境中设置 reCAPTCHA Enterprise:

  • 您在支持外部身份验证方法(例如服务帐号)的非 Google Cloud 环境、本地环境、CRM 或 SaaS 环境中使用 reCAPTCHA Enterprise。

  • 在您的环境中,您需要使用 v1 端点来满足以下要求:

    • 您的环境需要基于角色的访问权限控制 (RBAC)。

    • 您的环境不需要预览版和抢先体验计划 (EAP) 功能,例如多重身份验证 (MFA) 或密码泄露检测。

在非 Google Cloud 环境中设置 reCAPTCHA Enterprise 需要启用 reCAPTCHA Enterprise API、创建服务帐号以及为后端配置服务帐号。

准备工作

  1. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  2. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

    reCAPTCHA Enterprise 要求在项目上关联并启用结算功能才能访问 API。您可以使用信用卡或现有的 Google Cloud 项目结算 ID 来启用结算功能。如果您需要结算方面的帮助,请与 Cloud Billing 支持团队联系。

启用 reCAPTCHA Enterprise API

控制台

  1. 在 Cloud Console 中,转到 reCAPTCHA Enterprise API 页面。

    转到 reCAPTCHA Enterprise API

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

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

  3. 点击启用

gcloud

  1. 如需在 gcloud 会话中设置 Google Cloud 项目,请运行 gcloud config set project 命令。将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。
           gcloud config set project PROJECT_ID
           
  2. 如需启用 reCAPTCHA Enterprise API,请运行 gcloud services enable 命令:
             gcloud services enable recaptchaenterprise.googleapis.com
           
  3. 如需验证 reCAPTCHA Enterprise API 是否已启用,请运行 gcloud services list 命令:
             gcloud services list --enabled
           

    验证 reCAPTCHA Enterprise API 是否在已启用的 API 列表中列出。

为后端身份验证创建服务帐号

控制台

  1. 在 Cloud Console 中,转到服务帐号页面。

    转到“服务帐号”

  2. 选择您为其启用 reCAPTCHA Enterprise API 的项目。
  3. 点击创建服务帐号
  4. 输入 Cloud Console 中显示的服务帐号名称。

    Cloud Console 会根据此名称生成服务帐号 ID。 如有必要,请修改 ID。此 ID 创建后便无法更改。

  5. 可选:输入服务帐号的说明。
  6. 点击创建
  7. 选择角色下拉菜单中,选择 reCAPTCHA Enterprise Agent
  8. 点击完成
  9. 在服务帐号列表中,点击您创建的服务帐号的电子邮件地址。
  10. 点击密钥
  11. 点击添加密钥,然后选择创建新密钥
  12. 在对话框中,选择 JSON,然后点击创建

    包含密钥的 JSON 文件就会下载到您的计算机。

  13. 点击关闭

gcloud

  1. 创建服务帐号。将 NAME 替换为服务帐号的名称。

    gcloud iam service-accounts create NAME
  2. 向服务帐号授予 reCAPTCHA Enterprise Agent (roles/recaptchaenterprise.agent) 权限。替换以下值:

    • PROJECT_ID:您的 Google Cloud 项目 ID。
    • NAME:要为其授予权限的服务帐号的名称。
    gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com" --role="roles/recaptchaenterprise.agent"
         
  3. 生成服务帐号密钥文件。替换以下值:

    • FILE_NAME:私钥的新输出文件的路径,例如 ~./sa-private-key.json
    • NAME:要为其创建密钥的服务帐号的名称。
    • PROJECT_ID:您的 Google Cloud 项目 ID。
    gcloud iam service-accounts keys create FILE_NAME.json --iam-account=NAME@PROJECT_ID.iam.gserviceaccount.com

为后端身份验证配置服务帐号

您可以使用 reCAPTCHA Enterprise 客户端库或 gcloud 命令行工具配置您为后端身份验证创建的新服务帐号。

客户端库

  1. 通过设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 向应用代码提供身份验证凭据。 此变量仅适用于当前的 Shell 会话,因此,如果您打开新的会话,请重新设置该变量。

    Linux 或 macOS

    export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

    KEY_PATH 替换为包含您的服务帐号密钥的 JSON 文件的路径。

    例如:

    export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

    Windows

    对于 PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

    KEY_PATH 替换为包含您的服务帐号密钥的 JSON 文件的路径。

    例如:

    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

    对于命令提示符:

    set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH

    KEY_PATH 替换为包含您的服务帐号密钥的 JSON 文件的路径。

  2. 安装客户端库。

    C#

    如需了解详情,请参阅设置 C# 开发环境
    Install-Package Google.Cloud.RecaptchaEnterprise.V1
    

    Go

    如需了解详情,请参阅设置 Go 开发环境
    go get -u cloud.google.com/go/recaptchaenterprise/apiv1
    

    Java

    如需了解详情,请参阅设置 Java 开发环境

    如果您使用的是 Maven,请将以下代码添加到您的 pom.xml 文件中。如需详细了解 BOM,请参阅 Google Cloud Platform 库 BOM

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.google.cloud</groupId>
          <artifactId>libraries-bom</artifactId>
          <version>20.6.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
    <dependencies>
      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-recaptchaenterprise</artifactId>
      </dependency>
    </dependencies>
    

    如果您使用的是 Gradle,请将以下代码添加到您的依赖项中:

    implementation platform('com.google.cloud:libraries-bom:20.6.0')
    
    compile 'com.google.cloud:google-cloud-recaptchaenterprise'

    如果您使用的是 sbt,请将以下代码添加到您的依赖项中:

    libraryDependencies += "com.google.cloud" % "google-cloud-recaptchaenterprise" % "1.2.1"

    如果您使用的是 IntelliJ 或 Eclipse,请通过以下 IDE 插件将客户端库添加到您的项目中:

    上述插件还提供其他功能,例如服务帐号密钥管理。如需了解详情,请参阅各个插件相应的文档。

    Node.js

    如需了解详情,请参阅设置 Node.js 开发环境
    npm install --save @google-cloud/recaptcha-enterprise
    

    PHP

    如需了解详情,请参阅在 Google Cloud 上使用 PHP。将该库作为依赖项添加到您的 composer.json 文件中:
    composer require google/cloud-recaptcha-enterprise
    
    或者,您可以在本地下载软件包

    Python

    如需了解详情,请参阅设置 Python 开发环境
    pip install --upgrade google-cloud-recaptcha-enterprise
    

    Ruby

    如需了解详情,请参阅设置 Ruby 开发环境
    gem install google-cloud-recaptcha_enterprise
    

现在,您创建的服务帐号可以用于后端身份验证。创建评估时,您可以使用 reCAPTCHA Enterprise 客户端库对服务帐号进行身份验证。

gcloud 工具

  1. 安装并初始化 Cloud SDK
  2. 通过设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 向应用代码提供身份验证凭据。 此变量仅适用于当前的 Shell 会话,因此,如果您打开新的会话,请重新设置该变量。

    Linux 或 macOS

    export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

    KEY_PATH 替换为包含您的服务帐号密钥的 JSON 文件的路径。

    例如:

    export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

    Windows

    对于 PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

    KEY_PATH 替换为包含您的服务帐号密钥的 JSON 文件的路径。

    例如:

    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

    对于命令提示符:

    set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH

    KEY_PATH 替换为包含您的服务帐号密钥的 JSON 文件的路径。

现在,您创建的服务帐号可以用于后端身份验证。创建评估时,您可以使用 gcloud 工具对服务帐号进行身份验证。

后续步骤

  1. 确定要使用的 reCAPTCHA(网站)密钥的类型创建 reCAPTCHA 密钥
  2. 在网页上安装基于得分的网站密钥或复选框网站密钥。

    将 reCAPTCHA Enterprise 与 Android 应用iOS 应用集成。

  3. 创建评估

  4. 解读评估,并根据得分对您的网站采取适当的措施。