无需登录/密码即可"保护"API的最佳做法

ale*_*pro 9 api rest mobile backend

我有一个客户端应用程序,可以用一些UID识别.我有一个后端服务,客户端应用程序需要调用它来检索一些列表.获得此后端服务的最佳做法是什么?我不想通过登录/密码保护(因为客户不应该被要求"登录"检索列表),但是,我不希望任何人轻松地调用此后端API和检索这些上市为自己的目的.将客户端视为自定义Flash客户端或移动客户端等.通信通过HTTP REST进行.有任何想法吗?

谢谢

更新:抱歉,忘记提及 - 不使用SSL.基本上我在这里寻找一些算法/策略的想法.谢谢你的建议!

Rob*_*evy 6

这里的总体思路是,您将使用 HTTPS,并将客户端配置为使用 API 提供商通过某种其他安全方法向其颁发的 X.509 证书来签署其请求。服务器也将拥有此证书(或者更好的是客户端证书是其子证书的证书),并且可以验证传入的请求是否是使用它签名的。这是服务器到服务器通信的相当标准。如果您正在构建一个供最终用户在本地运行的应用程序,则它不起作用,因为坏人可以轻松地从客户端应用程序中提取此证书并破坏整个计划

有很多关于如何配置它的技术特定文章,并且您没有指定您正在使用什么堆栈,但这里有一篇通用文章只是为了证明我没有编造这些东西:) http://www. ibm.com/developerworks/lotus/library/ls-SSL_client_authentication/