HTTP授权和WWW-Authenticate头部

4
我正在开发一个REST API,现在我想引入一个认证/授权系统。经过长时间的研究,我决定使用HMAC进行HTTP身份验证,这与Amazon实现非常相似。 但是我不明白这个方案是如何工作的...例如,亚马逊使用了自定义的“AWS”方案...方案名称是任意的吗?(我可以定义任何名称,比如“foo”,“bar”,“my_api_scheme”等吗?)
我的猜测是,可以选择任何类型的方案名称,只要在WWW-Authenticate标头中使用相同的名称即可。 因此,如果我想创建一个“my_api”方案,我将返回带有401 http响应的:
WWW-Authenticate: my_api realm="user.mysite.com"

并且在请求中:

Authorization: my_api hash_signature

我是正确的还是不太简单?


您可能想阅读http://greenbytes.de/tech/webdav/rfc7235.html。 - Julian Reschke
1个回答

2

是的,您提出的方案是正确的。您应该对hash_signature进行base64编码。您可以在这里找到AWS认证方案的工作原理。

是否编写自己的身份验证逻辑是另一个问题。我建议您考虑使用像Hawk这样的工具,它能够实现您想要的功能,并由专业人士维护。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接