本文档介绍如何以编程方式向 Pub/Sub 进行身份验证。如何向 Pub/Sub 进行身份验证取决于您用于访问 API 的界面以及运行代码的环境。
注意:Pub/Sub 不支持将 API 密钥作为身份验证方法。如需详细了解 Google Cloud 身份验证,请参阅 身份验证方法。
API 访问权限
Pub/Sub 支持程序化访问。您可以通过以下方式访问 API:
客户端库
Pub/Sub 客户端库为以编程方式向 Pub/Sub 进行身份验证提供了 高级语言支持。 为了对 Google Cloud API 的调用进行身份验证,客户端库支持 应用默认凭证 (ADC); 这些库会在一组指定的位置查找凭证,并使用这些凭证 对发送到 API 的请求进行身份验证。借助 ADC,您可以在各种环境(例如本地开发或生产环境)中为您的应用提供凭据,而无需修改应用代码。
Google Cloud CLI
使用 gcloud CLI 访问 Pub/Sub 时,您需要以主账号身份向 Google Cloud 进行身份验证,该主账号会 提供 gcloud CLI 命令使用的凭据。
如果您的组织的安全政策阻止用户账号获取所需的 权限,您可以使用 服务账号模拟。
如需了解详情,请参阅 使用 gcloud CLI 时进行身份验证。 如需详细了解如何将 gcloud CLI 与 Pub/Sub 搭配使用, 请参阅 Google Cloud CLI 参考页面。
REST
您可以使用 Pub/Sub API 凭据或使用 应用默认凭据向 Pub/Sub API 进行身份验证。如需详细了解 REST 请求身份验证,请参阅使用 REST 时进行身份验证。
Pub/Sub 的用户凭据和 ADC
向 ADC 提供凭据的一种方法是使用 gcloud CLI 将您的 用户凭据插入凭据文件中。此文件位于本地文件系统上,ADC 可以找到它。然后,ADC 使用提供的用户凭据对请求进行身份验证。此 方法通常用于本地开发。
如果您使用此方法,则在尝试向 Pub/Sub 进行身份验证时可能会遇到身份验证错误。如需详细了解此错误及其解决方法,请参阅用户凭据不起作用。
为 Pub/Sub 设置身份验证
设置身份验证的方式取决于代码在其中运行的环境。
以下是最常用的身份验证设置选项。如需了解有关身份验证的更多选项和信息,请参阅身份验证方法。
对于本地开发环境
您可以通过以下方式为本地开发环境设置凭据:
客户端库或第三方工具
在本地环境中设置 应用默认凭证 (ADC) :
-
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后, 运行以下命令来初始化 Google Cloud CLI:
gcloud init -
为您的用户账号创建本地身份验证凭据:
gcloud auth application-default login
如果返回了身份验证错误,并且您使用的是外部身份提供方 (IdP),请确认您已 使用联合身份登录 gcloud CLI。
登录屏幕随即出现。在您登录后,您的凭据会存储在 ADC 使用的本地凭据文件中。
如需详细了解如何在本地环境中使用 ADC,请参阅为本地开发环境设置 ADC。
从命令行发出的 REST 请求
从命令行发出 REST 请求时,您可以通过在发送该请求的命令中添加 gcloud auth print-access-token 来使用 gcloud CLI 凭据。
以下示例列出了指定项目的服务账号。您可以对任何 REST 请求使用相同的模式。
在使用任何请求数据之前, 请进行以下替换:
- PROJECT_ID:您的 Google Cloud 项目 ID。
如需发送您的请求,请展开以下选项之一:
如需详细了解如何使用 REST 和 gRPC 进行身份验证,请参阅