在 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
控制台
在控制台中,转到 reCAPTCHA Enterprise API 页面。
验证项目名称是否显示在页面顶部的项目选择器中。
如果您没有看到项目名称,请点击项目选择器,然后选择您的项目。
- 点击启用。
gcloud
- 如需在 gcloud 会话中设置 Google Cloud 项目,请运行
gcloud config set project
命令。将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。gcloud config set project PROJECT_ID
- 如需启用 reCAPTCHA Enterprise API,请运行
gcloud services enable
命令:gcloud services enable recaptchaenterprise.googleapis.com
- 如需验证 reCAPTCHA Enterprise API 是否已启用,请运行
gcloud services list
命令:gcloud services list --enabled
验证 reCAPTCHA Enterprise API 是否在已启用的 API 列表中列出。
创建用于后端身份验证的服务帐号
控制台
在控制台中,转到服务帐号页面。
- 选择您为其启用 reCAPTCHA Enterprise API 的项目。
- 点击创建服务帐号。
输入要在 Cloud Console 中显示的服务帐号名称。
Cloud Console 会根据此名称生成服务帐号 ID。 如有必要,请修改 ID。此 ID 创建后便无法更改。
- 可选:输入服务帐号的说明。
- 点击创建。
- 从选择角色下拉菜单中,选择 reCAPTCHA Enterprise Agent。
- 点击完成。
- 在服务帐号列表中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后选择创建新密钥。
- 在对话框中,选择 JSON,然后点击创建。
包含密钥的 JSON 文件就会下载到您的计算机。
- 点击关闭。
gcloud
-
创建服务帐号。将 NAME 替换为服务帐号的名称。
gcloud iam service-accounts create NAME
-
向服务帐号授予 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"
-
生成服务帐号密钥文件。替换以下值:
- 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
- KEY_PATH:私钥的新输出文件的路径,例如
配置用于后端身份验证的服务帐号
您在 Google Cloud 环境中为后端身份验证配置服务帐号的方式取决于您使用的产品,例如 App Engine、Compute Engine 和 Google Kubernetes Engine (GKE)。
App Engine
对于 App Engine,您可以使用 reCAPTCHA Enterprise 客户端库对服务帐号进行身份验证。
-
通过设置环境变量
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 文件的路径。 - 安装客户端库。
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。如果您使用的是 Gradle,请将以下代码添加到您的依赖项中:
如果您使用的是 sbt,请将以下代码添加到您的依赖项中:
如果您使用的是 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 客户端库
-
通过设置环境变量
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 文件的路径。 - 安装客户端库。
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。如果您使用的是 Gradle,请将以下代码添加到您的依赖项中:
如果您使用的是 sbt,请将以下代码添加到您的依赖项中:
如果您使用的是 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 命令行
- 安装并初始化 Google Cloud CLI。
-
通过设置环境变量
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
将 Workload Identity 与服务帐号结合使用,以便从 GKE 内运行的应用访问 Google Cloud 服务。
如需详细了解如何创建服务帐号,请参阅为后端身份验证创建服务帐号。
后续步骤
- 确定要使用的 reCAPTCHA(网站)密钥的类型并创建 reCAPTCHA 密钥。
-
或
将 reCAPTCHA Enterprise 与 Android 应用或 iOS 应用集成。
创建评估。
解读评估,并根据得分对您的网站采取适当的措施。