[英]How to get a list of authenticated users in app engine cloud endpoints?
[英]How does one grant authenticated website users (App Engine standard) access to Google Cloud Storage bucket?
我已经在Google App Engine标准上部署了Java8 Web应用程序。 目前,我已经集成了Oauth2,可以获取用户的电子邮件地址,token_id等。用户注册流程非常标准(即使使用Oauth2也是如此)。 基本上,它使用户可以添加他们的电子邮件/密码或使用Google登录进行注册。 我在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。 您的后端服务器代码将生成URL,然后用户可以在临时时间内直接访问Cloud Storage对象。
您的后端将确定您要通过任何所需方法(包括使用OAuth,数据库等)对用户进行授权。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.