我还需要什么比SSL?为什么

时间:2013-05-01 10:27:52

标签: api rest authentication ssl

我正在为个人项目创建RESTful API,我一直在阅读有关api身份验证的内容。我可能不明白不同的东西是什么。什么是OAuth?什么是API密钥?

主要问题

为什么我不能让每个请求都使用HTTPS并使用会话/ cookie?

2 个答案:

答案 0 :(得分:1)

如果用户将通过您拥有或控制的应用程序访问您的API,那么HTTPS和用户身份验证/授权就可以了。

但是,如果您希望允许其他开发者创建的应用程序访问您的API,则OAuth和API密钥允许您控制这些第三方应用程序如何使用您的API。

  • API密钥:通过为每个应用程序分配单独的api密钥,您可以识别发送请求的应用程序。您可以使用此信息来跟踪或限制应用程序可以对API执行的操作。
  • OAuth :如果第三方应用程序需要访问用户拥有的敏感数据或代表他们执行操作,那么您需要确保用户对此感到满意。您可以这样做的一种方法是要求应用程序在每次请求时传递用户凭据。但是,这通常不是一个好主意,因为您不希望用户向第三方透露其用户名和密码。这是OAuth拯救的地方,因为它允许用户为第三方提供有限的权限来代表他们访问您的API。

答案 1 :(得分:0)

如果符合以下条件,SSL就足够了:

  • 您需要客户证书
  • 应用程序获取客户端证书
  • 应用程序根据可接受的客户端列表验证它
  • 应用程序记录了哪个客户端执行了该事务。

如果没有这一切,你只是接受来自任何人的交易,这是OAuth正在解决的问题。