使用查询字符串加密的RESTAPI身份验证

使用查询字符串加密的RESTAPI身份验证,api,authentication,rest,Api,Authentication,Rest,我正在构建一个web应用程序,它提供一个API作为它的主要功能。我一直在研究身份验证的方法,但一直在努力决定使用什么 因为这将是一个付费服务,API就是服务,所以我需要使它尽可能易于使用,这样就不会让人们感到厌烦,但显然我希望它是安全的。我已经考虑过在SSL上使用HTTP基本身份验证,但如果可能的话,我希望在早期避免SSL的成本/开销/麻烦,并可能在以后将其作为一个选项提供 我喜欢AWS风格的API认证(请参阅),但问题是我不能让用户将查询字符串作为纯文本与签名一起发送,因为参数可能包含电话号码

我正在构建一个web应用程序,它提供一个API作为它的主要功能。我一直在研究身份验证的方法,但一直在努力决定使用什么

因为这将是一个付费服务,API就是服务,所以我需要使它尽可能易于使用,这样就不会让人们感到厌烦,但显然我希望它是安全的。我已经考虑过在SSL上使用HTTP基本身份验证,但如果可能的话,我希望在早期避免SSL的成本/开销/麻烦,并可能在以后将其作为一个选项提供

我喜欢AWS风格的API认证(请参阅),但问题是我不能让用户将查询字符串作为纯文本与签名一起发送,因为参数可能包含电话号码之类的内容,我认为客户不愿意公开这些内容。我曾考虑过提供一个密钥来加密字符串,该字符串与一个api密钥一起发送以识别用户


您认为最好的选择是在保持简单性的同时对查询字符串和请求进行加密吗?

使用HTTPS。它很简单,几乎所有的客户端库都支持它,它是可信的、安全的,并且可以保护URL和有效负载。

我意识到最终这可能是最好的解决方法,但我真的希望尽可能避免SSL的开销,因为这可能会对提供的服务产生影响。好的,然后请记住,运行自己的专有安全系统将是您和您的客户必须承担的成本。是的,您是对的,这就是为什么我在这个问题上努力做出决定的原因。也许我会使用HTTPS,如果性能真的受到影响,那么我会重新考虑。谢谢你的帮助,汤姆。