在 Google Cloud 上设置 reCAPTCHA Enterprise

在 Google Cloud 上设置 reCAPTCHA Enterprise

本快速入门指导您在 Google Cloud 上设置 reCAPTCHA Enterprise。如需在 Google Cloud 上设置 reCAPTCHA Enterprise,您需要启用 reCAPTCHA Enterprise API,创建服务帐号,并为后端身份验证配置服务帐号。本文档同时适用于 PaaS 选项(如 App Engine)和 IaaS 选项(如 Compute Engine 中的虚拟机)。

准备工作

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

转到“项目选择器”

启用 reCAPTCHA Enterprise API

控制台

  1. 在控制台中,转到 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. 在控制台中,转到服务帐号页面。

    转到“服务帐号”

  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. 生成服务帐号密钥文件。替换以下值:

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

配置用于后端身份验证的服务帐号

您在 Google Cloud 环境中为后端身份验证配置服务帐号的方式取决于您使用的产品,例如 App Engine、Compute Engine 和 Google Kubernetes Engine (GKE)。

App Engine

对于 App Engine,您可以使用 reCAPTCHA Enterprise 客户端库对服务帐号进行身份验证。

  1. 通过设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 向应用代码提供身份验证凭据。此变量仅适用于当前的 Shell 会话。如果您希望变量应用于未来的 Shell 会话,请在 shell 启动文件中设置变量,例如在 ~/.bashrc~/.profile 文件中。

    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 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>26.0.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:26.0.0')
    
    implementation 'com.google.cloud:google-cloud-recaptchaenterprise'

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

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

    如果您使用的是 Visual Studio Code、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 客户端库对服务帐号进行身份验证。

Compute Engine

您可以使用 reCAPTCHA Enterprise 客户端库或 Google Cloud CLI 配置您为后端身份验证创建的新服务帐号。

reCAPTCHA Enterprise 客户端库

  1. 通过设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 向应用代码提供身份验证凭据。此变量仅适用于当前的 Shell 会话。如果您希望变量应用于未来的 Shell 会话,请在 shell 启动文件中设置变量,例如在 ~/.bashrc~/.profile 文件中。

    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 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>26.0.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:26.0.0')
    
    implementation 'com.google.cloud:google-cloud-recaptchaenterprise'

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

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

    如果您使用的是 Visual Studio Code、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. 安装初始化 Google Cloud CLI。
  2. 通过设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 向应用代码提供身份验证凭据。此变量仅适用于当前的 Shell 会话。如果您希望变量应用于未来的 Shell 会话,请在 shell 启动文件中设置变量,例如在 ~/.bashrc~/.profile 文件中。

    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 CLI 对服务帐号进行身份验证。

GKE

  1. Workload Identity 与服务帐号结合使用,以便从 GKE 内运行的应用访问 Google Cloud 服务。

    如需详细了解如何创建服务帐号,请参阅为后端身份验证创建服务帐号

  2. 使用 Workload Identity 向 Google Cloud 进行身份验证

后续步骤

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

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

  3. 创建评估

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