Google app engine 谷歌云存储认证

Google app engine 谷歌云存储认证,google-app-engine,authentication,google-cloud-storage,google-cloud-endpoints,blobstore,Google App Engine,Authentication,Google Cloud Storage,Google Cloud Endpoints,Blobstore,我建立Android应用程序链接到谷歌云存储。我只想允许我的android应用程序访问GCS 谷歌提供三种安全连接地面军事系统的解决方案: Oauth 2.0(使用google帐户) Cookie基本帐户(也使用google帐户) 服务帐户身份验证(使用私钥,但本地安装在Android应用程序上:如果有人反编译my.apk,则非常糟糕) 资料来源: 是否有其他通过地面军事系统安全连接的解决方案我希望通过这种方式在GCS上连接(仅限于Android客户端ID:SHA1到您的.apk): 地面军

我建立Android应用程序链接到谷歌云存储。我只想允许我的android应用程序访问GCS

谷歌提供三种安全连接地面军事系统的解决方案:

  • Oauth 2.0(使用google帐户)
  • Cookie基本帐户(也使用google帐户)
  • 服务帐户身份验证(使用私钥,但本地安装在Android应用程序上:如果有人反编译my.apk,则非常糟糕)
资料来源:

是否有其他通过地面军事系统安全连接的解决方案我希望通过这种方式在GCS上连接(仅限于Android客户端ID:SHA1到您的.apk):

地面军事系统有可能吗?我应该用Blobstore来做吗


提前感谢

这是计算的一个基本问题。您永远不能完全相信在未知第三方完全控制下的硬件上运行的应用程序没有被篡改。有很多很多技术使得篡改变得更加困难,但是远程系统永远不会完全安全。有几种方法可以验证用户是否拥有特定的Google帐户,但你不能轻易确信某个应用程序就是你的应用程序


也就是说,有很多方法可以在不信任客户机的情况下设计安全的应用程序。您的应用程序需要授权才能执行哪些操作?上传对象?下载安全对象?伪装成您的应用程序的用户会做什么坏事吗?

我认为您可以使用1)来验证信息。应用程序将身份验证请求转发到您的服务器(使用您自己的应用程序登录令牌),当用户通过您自己的服务验证后,应用程序将收到oauth令牌,以发送到gcloud并接收所需文件。

我发布了一个新问题。这是相关的。因此,对于应用程序引擎应用程序来说,服务帐户似乎是一条出路。对于已安装的应用程序,任何嵌入的秘密都不是真正的秘密。假设我想将文件下载限制为只有安装了我的应用程序的用户,比如Oru的用户。我知道答案取决于妥协的潜在影响,但您会建议嵌入凭据(或刷新令牌或其他),还是在安装时将GCS访问权授予该用户?