非技术用户的轻量级身份验证方法,对于Ajax应用程序也是安全的?

时间:2015-12-11 01:52:57

标签: django authentication django-rest-framework

我有一个面向公众的REST API,它使用django-rest-framework和Django 1.8。 API目前不需要身份验证。作为同一个Web应用程序的一部分,在同一个域中,我有一个使用API​​的JavaScript前端。

我的客户现在希望我为此API添加某种身份验证。 (基本目标是我们可以跟踪谁在使用它 - 它实际上是社交工程,鼓励使用我们数据的任何人引用我们的服务。)

但是,目标API用户并不是高技术人员 - 他们可能是将使用API​​进行数据分析的学者,而不是Web开发人员。因此,身份验证越轻便越好。我不确定我们的目标用户是否会处理发送身份验证请求,在标头中添加令牌等等。

添加到DRF的最佳身份验证类型是:(a)对于我们的目标用户群是否适当轻量级,以及(b)是否需要以不这样的方式验证我的JavaScript前端应用程序把钥匙暴露给每个人?

我的第一个想法是,我想为用户提供一个可以添加为GET参数的密钥(like this) - 对他们来说很简单。但是,如果我向API添加密钥auth,那么我必须在我的JS应用程序的XHR请求中公开密钥GET参数,这是不理想的。

我们的目标受众可能不会真正注意到XHR请求中暴露的密钥,而不是Web开发人员。但我想我会问是否有人能想出更好的解决方案 - 非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

Token Authentication使用起来非常简单,但如果您的网站不使用https,则令牌很容易被盗用并被攻击者用来执行api调用。

如果此处的身份验证仅适用于社交工程,如果令牌泄露给第三方并不重要,那么我认为它的出路