【发布时间】:2011-03-22 17:44:40
【问题描述】:
我有一个 web 应用程序,它具有一些我希望通过 API 或 web 服务访问的功能。我的问题是我想控制可以从哪里访问我的 API,也就是说,我只希望我创建或批准的应用程序可以访问我的 API。 API 将是一个基于 Web 的 REST 服务。我的用户没有登录,所以没有用户身份验证。最可能的用例,也是现在可以使用的,是应用程序将是一个 iOS 应用程序。 API 将使用 django/python 进行编码。
鉴于无法查看 iOS 应用程序的源代码(我认为,如果我错了,请纠正我),我最初的想法是我可以只拥有一些作为API 的参数。但是,任何监听连接的人都可以看到这个密钥,并且可以在世界任何其他地方使用它。
我的下一个步骤是我可以添加一个先前的步骤。在应用程序开始使用 API 之前,它必须通过一个挑战。在第一次请求时,我的 API 将创建一个随机短语并使用一些密钥(RSA?)对其进行加密。原始的、未加密的短语将被发送到应用程序,该应用程序还必须使用相同的密钥对短语进行加密,并将加密的文本与他们的请求一起发回。如果加密匹配,则应用可以访问,但如果不匹配,则不会。
我的问题是:这听起来像是一种很好的方法吗?如果是的话,是否有任何现有的库可以做这些类型的事情?我现在将在python服务器端和objective-c客户端工作。
【问题讨论】:
标签: python objective-c security api rsa