RESTful API身份验证

我在这个主题上发现了很多关于SO的问题,但是找不到任何回答这个问题的答案:

我应该使用用户名和密码,还是使用API​​密钥来验证用户? 每种方法的优缺点是什么?

我问这是因为在我的API中,我想锁定几个方法并验证用户是否可以访问某个文档或操作。 我有点不情愿通过让用户发送带有用户名和密码的HTTP AUTH头来进行身份验证,因为它感觉不安全并且对用户来说更麻烦一点。 但另一方面,如果我使用API​​密钥,那么用户创建密码有什么意义? 因为他们将不再使用它来访问API的功能。

UPDATE

如果其他读者对我最终使用的东西感到好奇,我决定复制亚马逊如何进行验证(这里有很好的解释:https://www.ida.liu.se/~TDP024/labs/hmacarticle.pdf)


您可以通过SSL使用HTTP身份验证,这足够安全。 但是,由于API需要客户端库支持SSL,因此API的使用有点困难。 如果您期望同时拨打太多电话,SSL也会影响性能。

API密钥选项与没有SSL的HTTP身份验证一样不安全。 如果您不关心安全性,那么API密钥对API的使用者来说是最简单的。


一种好的方法是使用用户名和密码登录(希望通过TLS)。 如果他们成功认证,你给他们一个到期的令牌; 其余的API调用必须包含此令牌才能成功。

链接地址: http://www.djcxy.com/p/71275.html

上一篇: RESTful API Authentication

下一篇: REST API Authentication