HTTP授权和WWW-Authenticate标头

时间:2016-02-20 11:34:09

标签: rest security http authentication http-headers

我正在开发一个REST API,现在,我想介绍一个身份验证/授权系统,经过长时间的研究,我决定用HMAC实现HTTP身份验证,这与{非常相似{3}}。 但我不明白该计划是如何运作的......例如亚马逊使用自定义" AWS" scheme ...方案名称是否随意? (我可以为它定义任何名称,例如" foo"," bar"," my_api_scheme"依此类推?)

我的猜测是,只要在WWW-Authenticate标题中使用相同的名称,就可以选择任何类型的方案名称。 所以,如果我想创建一个" my_api"我将返回401 http响应:

WWW-Authenticate: my_api realm="user.mysite.com"

并在请求中:

Authorization: my_api hash_signature

我是对还是不那么简单?

1 个答案:

答案 0 :(得分:1)

是的,你的建议是正确的。您应该对hash_signature进行base64编码。您可以找到AWS身份验证方案的工作方式here

编写自己的身份验证逻辑是否是个好主意是另一个问题。我建议你研究像Hawk这样的东西,它可以做你想要的,并由主题专家维护。