我正在开发一个 REST API,现在,我想介绍一个身份验证/授权系统,经过长时间的研究,我决定使用 HMAC 实现一个 HTTP 身份验证。 ,与 Amazon implementation 非常相似的东西. 但我不明白该方案是如何工作的......例如亚马逊使用自定义“AWS”方案......方案名称是任意的吗? (我可以为它定义任何名称,例如“foo”、“bar”、“my_api_scheme”等等吗?)
我的猜测是,可以选择任何类型的方案名称,前提是 WWW-Authenticate
header 中使用了相同的名称。
因此,如果我想创建一个“my_api
”方案,我将返回一个 401 http 响应:
WWW-Authenticate: my_api realm="user.mysite.com"
在请求中:
Authorization: my_api hash_signature
我说得对还是没那么简单?
最佳答案
是的,你的建议是正确的。您可能应该对 hash_signature
进行 base64 编码。您可以找到 AWS 身份验证方案的工作原理 here .
编写自己的身份验证逻辑是否是个好主意是另一个问题。我建议您查看类似 Hawk 的内容,它可以满足您的需求,并由主题专家维护。
关于rest - HTTP 授权和 WWW-Authenticate header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35522631/