【问题标题】:How could I control access to Google Cloud Storage objects using my own auth system?如何使用自己的身份验证系统控制对 Google Cloud Storage 对象的访问?
【发布时间】:2022-01-16 11:18:54
【问题描述】:

我目前正在使用 Google Cloud Storage 来处理我的应用程序的存储。在阅读 GCS 的文档时,我想知道当我拥有自己的身份验证系统而不是 Firebase 等时,如何控制谁可以访问什么

例如,我有两个不同的角色,adminuser。具有user 角色的用户可以上传文件、删除其文件,但用户无法查看其他用户的文件。 管理员可以查看所有用户的文件。

这是否可以通过 Google Cloud Storage 实现,尤其是在使用您自己的身份验证系统(使用 redis 的会话)时?

在 Google Cloud Storage 文档中找不到任何明确的示例来说明我正在寻找的内容,不胜感激。

【问题讨论】:

    标签: node.js express google-cloud-platform google-cloud-storage google-cloud-iam


    【解决方案1】:

    谷歌云存储的唯一访问管理系统是谷歌OAuth 2.0。你不能替换那个系统。

    但是,您可以在应用程序内的 IAM 之上添加一个层。我使用signed URLs 根据我的本地授权系统授予用户访问权限。用户对我的应用程序进行身份验证,请求签名 URL,然后直接访问 Cloud Storage。我使用 HTTP 重定向来透明地请求签名 URL。用户将 Cloud Storage 对象视为我的应用程序中的路由。这听起来可能很复杂,但在大多数框架中很容易实现。我将这项技术与 Laravel 一起用于 Google 和 Azure 存储。然后,实际的 Cloud Storage 请求发生在用 JavaScript 编码的浏览器中。

    【讨论】:

    • 啊,我正在阅读有关签名 URL 的内容,并认为我可以使用它们,但不确定。我唯一的问题是,显然 NodeJS 客户端不能用于制作签名 URL 以列出存储桶中的对象,这有点不幸但没什么大不了的。我会更深入地研究这条路线,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2014-10-30
    相关资源
    最近更新 更多