我们已准备好后端代码,并且我们希望保护构建在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搜索并查看了大量OAuth2
或HMAC
,但就我们而言,可以更轻松,更安全。
因此,一般而言,我们如何实施基于Google Cloud Platform的安全后端API?