【发布时间】:2015-02-13 23:16:32
【问题描述】:
我们的后端代码已经准备就绪并且可以正常工作,我们希望保护我们基于 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
我们的应用有两种用户:注册用户和访客。 没有使用 google 或 facebook 的第 3 方登录。
如果我们实现一个getToken 方法并为用户生成一个令牌会怎样。但是任何知道这个 api 或嗅探流量的人都会知道这个机制,他们可以作为访客帐户使用我们的 API。
我们在 Google 上搜索过很多 OAuth2 或 HMAC,但对于我们来说,这样做是否可能更容易且相对安全。
那么,一般来说,我们如何实现基于 Google Cloud Platform 的安全后端 API?
【问题讨论】:
-
奈杰尔的回答似乎应该被探索。此外,您可能想在“code.google.com/p/googleappengine/issues”上解释您的第 1 点,这是 Google 的 App Engine 公开问题跟踪器 :)
-
@Timeless 您是否找到任何解决您的 IOS 问题的方法。我面临着类似的问题。我正在从 javascript 客户端进行调用,并且我想保护我的端点,这样只有我的 java 脚本客户端才能访问我的端点。我不需要任何使用过的身份验证。当我关注 Google 的文档时,我可以从任何客户端访问我的端点。有什么帮助吗?
标签: google-app-engine authentication google-cloud-endpoints