【问题标题】:Protect Google Cloud Endpoints API保护 Google Cloud Endpoints API
【发布时间】: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 上搜索过很多 OAuth2HMAC,但对于我们来说,这样做是否可能更容易且相对安全。

那么,一般来说,我们如何实现基于 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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2013-12-30
    • 1970-01-01
    相关资源
    最近更新 更多