HTTP Google Cloud Functions中的身份验证

sea*_*ain 10 google-cloud-platform google-cloud-functions

https://cloud.google.com/solutions/authentication-in-http-cloud-functions

该文档建议设置Google云端存储分区.然后将服务帐户的权限"storage.buckets.get"设置为存储桶.

然后使用此权限验证对http Google Cloud Functions的访问权限.

我们正在讨论验证http云功能,但我们正在借用Google云端存储的许可.在我看来,这是一个黑客解决方案.

如果我们只需通过Google Cloud Console在每个云功能上设置权限,那就太棒了.

您是否在上述文档中使用Google建议的身份验证解决方案?或者你有更好的方法?

要设置""storage.buckets.get",这是否意味着我授予服务帐户"存储对象查看器"权限?

在此输入图像描述

aru*_*ska 6

您在此处提供的链接中提出的解决方案确实是其中一种方法。事实上,您可以使用任何其他 Google Cloud Platform 产品(不仅是 Storage 存储分区)来检查所选帐户对其的权限。

一个可行的替代方案是:

  1. 准备一个云功能,其中将列出授权用户的电子邮件。
  2. Cloud Function 检索'Authorization'传入 HTTP 请求的标头,其中包含为发出请求的账户生成的令牌。
  3. 该函数使用提到的标头调用tokeninfo 端点以检索帐户的电子邮件(来自 JSON 响应正文)。返回电子邮件的 url 将如下所示:
url = "https://www.googleapis.com/oauth2/v1/tokeninfo?fields=email&access_token
    =" + token_from_the_request_header;
Run Code Online (Sandbox Code Playgroud)
  1. 验证返回的电子邮件是否在授权列表中。
  2. ...如果是,则执行函数的逻辑。