在这个答案中,我将列出示例文档以了解 Google Cloud 中的授权以及如何从 App Engine 调用 Cloud Functions。阅读这些链接/文档,了解一切如何运作并相互连接。一旦您了解了基础知识,Google Cloud 中的授权就非常容易实施和保护。
第 1 步 - 了解 Google Cloud 中的授权
Google Cloud 将 OAuth 用于大多数服务和 API。一些服务仍然支持 API 密钥。阅读本文以了解服务器/服务到服务器/服务授权的基础:
Using OAuth 2.0 for Server to Server Applications
要理解的关键点是访问令牌和身份令牌。另一种令牌类型是刷新令牌,主要用于刷新从用户凭据创建的 OAuth 令牌。
第 2 步 - 了解用于授权的 JWT
本文是针对物联网设备编写的,但所有 Google Cloud 服务的详细信息都相同/相似。此链接包含示例代码。
Using JSON Web Tokens (JWTs)
第 3 步 - 了解 Cloud Functions 授权
Cloud Functions 使用 OAuth 身份令牌来授权来自其他服务和用户的请求。 OAuth 身份令牌是一个签名的 JWT,它断言调用者的身份。身份令牌由 Google 拥有或管理的私钥签名,并在授予对调用的 Cloud Function 访问权限之前由 Google 验证。
Authenticating Developers, Functions, and End-users
第 4 步 - 了解如何从 App Engine Standard 调用其他服务
既然您了解了如何在 Google Cloud 中执行授权,那么您需要了解如何创建用于授权调用 Cloud Functions 的令牌。本文讨论了 Python 中的 App Identity,以及如何断言身份以调用 Cloud Functions 或 App Engine Standard 中的任何 Google API/服务。
App Identity Python API Overview