0

在 Google Cloud文档中,它提到了已签名的请求,但没有提供任何进一步的信息。有谁知道 Google Cloud Api Gateway 是否提供这样的功能?

该 API 可用于未登录的用户,因此我无法使用 JWT 授权。

在此处输入图像描述

4

1 回答 1

1
  • 使用 Signatures 签名的请求只能用于通过 XML API 端点访问 Cloud Storage 资源。签名(使用 V4 签名)是对发送到 Cloud Storage XML API 的请求进行身份验证的一种方法。例如,在处理签名 URL、签名请求和 HTML 表单时会使用签名。这是有关此的 文档链接。
  • 然而,API 网关仅使用 API 密钥、服务帐户和 JWT 作为身份验证方法来验证传入请求,然后再将它们传递到您的 API 后端,如 guillaume blaquiere 所述。这是文档链接。
  • API 网关使用JWTFirebaseAuth0OktaGoogle ID Token对用户进行身份验证。
  • 除了对最终用户请求进行身份验证之外,您可能还需要对 向您的 API 发出请求的服务(非人类用户)进行身份验证。我们可以这样做:
    - 使用调用服务用来签署 JWT 的私钥文件创建服务帐户。
    - 为您的网关创建API 配置,您指定网关用于与其他服务交互的服务帐户。为了为调用您的网关的服务启用服务帐户身份验证,请修改API 中的安全要求对象安全定义对象配置。
  • 我们还可以保护 API Gateway 和后端服务之间的访问。您可以按照此文档链接阻止对后端托管服务的公开访问

如果您担心 API 网关主要用于身份验证的 API 密钥的安全性,您还可以通过多种方式限制使用这些密钥的 API 访问。但是,始终建议将使用签名的 JWT 或令牌作为最佳实践,因为 API 密钥通常可供客户端访问,从而使某人很容易窃取 API 密钥。密钥一旦被盗,就没有期限,因此可以无限期使用,除非项目所有者撤销或重新生成密钥。

于 2021-08-26T04:29:16.340 回答