保护Google Cloud Endpoints API

时间:2015-02-13 02:14:16

标签: google-app-engine authentication google-cloud-endpoints

我们已准备好后端代码,并且我们希望保护构建在Google Cloud Endpoints之上的API。

所以现在,我们在实现这些目标方面遇到了一些困难:

1)仅允许来自iOS设备的请求

此处Using Auth with Endpoints文章说我们可以Specifying authorized clients in the API backend。我们添加了类似的内容:

@Api(
    name = "tictactoe",
    version = "v1",
    scopes = {Constants.EMAIL_SCOPE},
    clientIds = {Constants.IOS_CLIENT_ID}
)

但是,我们仍然可以在不提供任何客户端ID的情况下访问。

2)只允许真实用户访问我们的API

我们的应用有两种用户:注册&客人。 没有使用谷歌或Facebook的第三方登录。

如果我们实现getToken方法并为用户生成令牌,该怎么办?但任何知道这种api或嗅探流量的人都会知道这种机制,他们可以将我们的API作为访客帐户使用。

我们使用Google搜索并查看了大量OAuth2HMAC,但就我们而言,可以更轻松,更安全。

因此,一般而言,我们如何实施基于Google Cloud Platform的安全后端API?

1 个答案:

答案 0 :(得分:1)

这看起来很棘手,您可以尝试:将hiddenProperty添加到持有共享密钥的客户端查询中。正如bossylobster here和Carlos here所述。