我正在为第三方开发几个RESTful API来调用,这些API需要身份验证(基于apikey和秘密)和授权(基于HTTP方法和URI)。
我们可以重用哪些现有软件阻止我推出自己的安全层实现吗?
答案 0 :(得分:7)
HTTP为您授予了对此的支持,因此您无需重新发明轮子
使用:
Auth Digest具有优势,它不会以明文形式传输passowrd并处理重放攻击(使用nonce)。
我们使用HTTP Auth Digest(Tomcat servlet容器直接支持它),我们对此感到满意。
编辑:有些客户有Digest问题(不是那么简单),所以这些天我会选择Basic和SSL。 Advantage for Basic也是您可以抢先认证(在第一次请求中发送用户:pwd)。答案 1 :(得分:2)
如果您使用Ruby on Rails(3.2.0或更高版本)构建API,请查看restful_api_authentication gem - https://rubygems.org/gems/restful_api_authentication
答案 2 :(得分:0)
您可以独立于您的技术实施某些系统,例如AWS使用。
实现并不太难但你需要考虑每个服务器请求,要求查询商店以检索SAK。一种选择是使用NoSQL DB或类似的(如Redis或memcache)来存储用户ID / sak。