gpt4 book ai didi

java - 如何授予经过身份验证的网站用户(App Engine 标准)访问 Google Cloud Storage 存储桶的权限?

转载 作者:行者123 更新时间:2023-12-02 01:44:58 25 4
gpt4 key购买 nike

我已经在 Google App Engine 标准上部署了一个 java8 Web 应用程序。目前我有 Oauth2 集成,我能够获取用户的电子邮件地址、token_id 等。用户注册流程非常标准(即使使用 Oauth2)。它基本上是让用户添加他们的电子邮件/密码或使用 Google 登录进行注册。 我在 Google Cloud Storage 中有目录和文件,我希望允许“经过身份验证的”用户访问它们。这意味着:

  • a) 如果他们的用户名/密码与我在 mysql 数据库中的用户名/密码匹配 或
  • b) 如果我在数据库中找到他们的 Google 登录凭据

我将它们重定向到 servlet,该 servlet 以链接的形式显示安全网页中的所有文件,用户可以在其中单击/打开文档。 我清楚如何请求对用户可能拥有的 Google 资源的授权。我需要知道的是如何“授予”用户(Google 用户或在网站上注册的普通用户)对 Google Cloud Storage 存储桶中文件的访问权限?

除非我将存储对象读取器授予“所有用户”,否则我会得到:

<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
Anonymous caller does not have storage.objects.get access to drmath.appspot.com/1a/index.html.
</Details>
</Error>

最佳答案

Google OAuth 无法满足您授予 Google Cloud Storage 访问权限的要求。他们的电子邮件地址(用户身份)需要作为用户添加到您的 Google Cloud IAM。

您可以做的是生成签名网址。这些是临时访问超时的 URL。您的后端服务器代码将生成 URL,然后用户可以暂时直接访问云存储对象。

您的后端将确定用户是否通过您想要的任何方法进行授权,包括使用 OAuth、数据库等。

Generating Signed URLs with Your Own Program

Signed URLs

关于java - 如何授予经过身份验证的网站用户(App Engine 标准)访问 Google Cloud Storage 存储桶的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53827552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com