我已经看到许多关于不同解决方案的不同文章,用于验证RESTful API,并且在当前情况下我有一些问题。面向REST API身份验证的客户端
我已经构建了一个REST API,允许我的软件服务(我们是B2B公司)的客户以编程方式访问资源。现在我已经可以正常使用API了,我想以最标准的方式保证它的安全。我需要允许基于API的调用者访问某些资源。也就是说,并非所有API的用户都可以访问所有资源。
我提供网址的格式如下:
https://mydomain/api/students
https://mydomain/api/students/s123
https://mydomain/api/students/s123/classes
https://mydomain/api/students/s123/classes/c456
到目前为止,我想出了这些可能的解决方案:
提供一个唯一的密钥,以每个客户,他们可以使用最终生成一个加密标记,该标记将在每个REST调用结束时作为GET参数传递给(重新) - 验证每个请求。这是方法过于昂贵
所看到here提供的HTTP认证头的值。这与#1几乎相同吗? (除了我无法将URL粘贴到浏览器中)人们是否再使用这些标头?
使用OAuth 2(我仍然有点不清楚)。 OAuth 2是否实际将客户端认证为登录用户?这不符合REST API无国界的精神吗?我希望OAuth对我来说是合适的解决方案(因为它是一个公共标准),但在阅读了一点之后,我不太确定。对于REST API调用它是否过度和/或不适当?
我的目标是提供不必更改为希望来使用API的每个客户端的API,而是我可以提供提供给所有客户的标准文档。
如果我不清楚,我很乐意发布更多详细信息。