我有一个Web应用程序,我想通过API或Web服务访问某些功能。我的问题是我想控制我的API可以从哪里访问,也就是说,我只想让我创建或批准的应用程序可以访问我的API。该API将是一个基于Web的REST服务。我的用户不会登录,因此没有用户身份验证。最有可能的用例和现在使用的用例是应用程序将是iOS应用程序。 API将用django/python编码。控制访问Web服务/ API的安全措施
鉴于无法查看iOS应用程序的源代码(我认为,纠正我,如果我错了),我最初的想法是,我可以只是有一些秘密密钥传入API的参数。然而,任何听到连接的人都能看到这个键,并从世界其他任何地方使用它。
我的下一个虽然是我可以添加一个先前的步骤。在应用程序使用API之前,它必须通过挑战。在第一次请求时,我的API将创建一个随机短语并使用某个密钥(RSA?)对其进行加密。原始未加密的短语将被发送到应用程序,该应用程序还必须使用相同的密钥对短语进行加密,并将加密的文本与其请求一起发回。如果加密匹配,应用程序可以访问,但如果不是,他们不会。
我的问题是:这听起来像一个很好的方法,如果有的话,是否有任何现有的库可以做这些类型的东西?我现在将在Python服务器端和客户端客户端工作。