Google cloud platform HTTP-Google云函数中的身份验证

Google cloud platform HTTP-Google云函数中的身份验证,google-cloud-platform,google-cloud-functions,Google Cloud Platform,Google Cloud Functions,该文件建议设置一个谷歌云存储桶。然后设置服务帐户对bucket的权限“storage.bucket.get” 然后使用此权限验证对http Google云功能的访问 我们正在讨论验证http云功能,但我们正在借用谷歌云存储的许可。在我看来,这是一个黑客解决方案 如果我们可以通过谷歌云控制台在每个云功能上设置权限,那就太好了 你们在使用谷歌在上面文档中建议的身份验证解决方案吗?或者你有更好的方法 要设置“storage.bucket.get”,是否意味着我授予服务帐户“storage Object

该文件建议设置一个谷歌云存储桶。然后设置服务帐户对bucket的权限“storage.bucket.get”

然后使用此权限验证对http Google云功能的访问

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


如果我们可以通过谷歌云控制台在每个云功能上设置权限,那就太好了

你们在使用谷歌在上面文档中建议的身份验证解决方案吗?或者你有更好的方法

要设置“storage.bucket.get”,是否意味着我授予服务帐户“storage Object Viewer”权限


要使用云功能,您需要将模块放入存储桶中。授予帐户对存储桶的“storage.bucket.get”权限,即授予服务帐户触发HTTP云功能的权限;类似地,您可以通过从另一个服务帐户删除“storage.bucket.get”权限来撤销授权新界


要设置,您需要选择“存储管理”通过标准角色或传统角色的“storage.legacyBucketReader”/“storage.legacyBucketWriter”,甚至使用“storage.bucket.get”权限。

您在这里介绍的解决方案确实是一种方法。事实上,您可以使用任何其他谷歌云平台产品(不仅仅是存储bucket)检查所选帐户对其的权限

另一种可行的方法是:

  • 准备一个将列出授权用户电子邮件的云功能
  • 云函数检索传入HTTP请求的
    'Authorization'
    头,该请求包含为发出请求的帐户生成的令牌
  • 该函数使用前面提到的标题调用,以检索帐户的电子邮件(从JSON响应主体)。返回电子邮件的url如下所示:
  • url=”https://www.googleapis.com/oauth2/v1/tokeninfo?fields=email&access_token
    =“+来自请求头的令牌”;
    
  • 验证返回的电子邮件是否在授权电子邮件列表中
  • …如果是,则执行函数的逻辑

  • “如果我们可以通过谷歌云控制台在每个云功能上设置权限,那就太好了“-听起来像是功能请求。您可以直接向Firebase团队发送功能请求。事实并非如此,我可以在bucket、topic、pub/sub上设置触发器,只要它们是
    --trigger
    键的正确值,用于
    gcloud functions deploy
    命令。假设我有一个gcloud函数(API)
    https://us-central1-gcf.cloudfunctions.net/myapi
    并希望通过我自己的一些应用程序来利用它。我想你不是说每个物理用户都必须登录谷歌才能使用它,对吧?在公司的非云环境中,典型的做法是为所有希望调用此函数的应用程序提供一个通用LDAP帐户。对于gcloud,我们可以用一个通用的gmail账户来代替它,在阅读了上面的“tokeninfo端点”之后,我的问题是如何指定这个通用的gmail账户,比如
    CallFromApps@gmail.com
    可以使用我的GCF吗?