我正在为我在 GAE python 上的应用程序开发一个 RESTful API,现在我正试图找出保护这个 API 的最佳方法。我在这个应用程序上有自己的成员/身份验证机制。
做这个的最好方式是什么?
- 拥有公钥/私钥对
- 成为 OAuth 提供者
- HTTP 身份验证(对我来说似乎很弱)
- 其他??
我正在为我在 GAE python 上的应用程序开发一个 RESTful API,现在我正试图找出保护这个 API 的最佳方法。我在这个应用程序上有自己的成员/身份验证机制。
做这个的最好方式是什么?
您可以使用 Google 服务帐户进行用户身份验证。但是,人们仍然可以注册一个帐户并使用您的 API,您的应用引擎费用肯定会上涨。他们刚刚在 Google I/O 2012 上介绍了 Google Cloud Endpoints。您将拥有一个仅在您的客户端应用程序(Android、iOS)上使用的客户端 ID。
Google I/O 2012 - 使用 Yaniv Inbar 和 Sriram Saroop 构建使用 Web API 的 Android 应用程序
Google I/O 2012 - 为 Android、iOS 和 Web 构建移动应用引擎后端
如果您有兴趣,您应该尝试在以下位置注册受信任的测试人员
首先,丢弃 HTTP Auth。不建议在真正的 REST API 中使用它,因为它驻留在 cookie 上。
我会选择 OAuth。有一个名为appengine_oauth_provider的库,它可以帮助您开始实现自己的提供程序。