【问题标题】:Lock down Cloud Endpoints API to only work with specific Android App锁定 Cloud Endpoints API,使其仅适用于特定的 Android 应用
【发布时间】:2015-11-09 10:43:42
【问题描述】:

我正在尝试锁定我的 Cloud Endpoints API,以便只有我的 Android 应用可以使用它,但是,我不想使用 Oauth2+Google 帐户来执行此操作。原因是我不想要求我的用户拥有谷歌帐户才能登录应用程序。例如,Snapchat 使用 Google App Engine,但不需要您拥有 Google 电子邮件来使用他们的应用程序 - 您只需创建自己的用户名和密码。

我已经阅读了几篇提供建议的帖子:

How do I restrict Google App Engine Endpoints API access to only my Android applications?

Authenticate my "app" to Google Cloud Endpoints not a "user"

How do I protect my API that was built using Google Cloud Endpoints?

但未能找到满意的答案。从我阅读的所有内容来看,我正在考虑为我的所有 Cloud Endpoints API 方法设置一个“令牌”参数,这只是我自己的 64 个字符长的随机字符串。在服务器端,我会将传入的令牌字符串与服务器代码中存储在服务器上的内容进行比较。如果他们匹配,宾果!您有权运行该方法。如果他们不这样做,你会得到一个错误。

上述方法的一个潜在问题是,有人可能会尝试反编译我的 APK,将该令牌存储在我的 android 代码中的痛苦文本中,然后调用我的 API。

我读到 parse.com 也可能存在这个问题,他们的特殊令牌可以在 APK 中反编译。他们通过提供 ACL (access control lists) 解决了这个问题。

但我真的想使用 Google Cloud Endpoints 而不是 Parse。现在,必须拥有 Google 帐户的限制真的很烦人......人们有没有找到解决这个问题的方法?

【问题讨论】:

    标签: android api google-app-engine parse-platform google-cloud-endpoints


    【解决方案1】:

    构建您的 API 以仅接受使用特定密钥签名的应用程序。

    我相信这个示例展示了它是如何实现的 https://cloud.google.com/cloud/samples/mbs 此链接不可行,但互联网上有各种镜像

    【讨论】:

    • 看到了那个链接,但它已经过时了......“移动后端启动器示例应用程序不再可用。” --- 此外,您的意思是构建您的 API 以仅接受使用特定密钥签名的应用程序?您能举一个 Cloud Endpoints 的例子吗?
    • 你必须找到“The mobile backend starter sample”的镜像,我至少看到了两个。一切都在那里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    相关资源
    最近更新 更多