rest - HTTP 授权和 WWW-Authenticate header

标签 rest security http authentication http-headers

我正在开发一个 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/

相关文章:

java - 为什么是 PRG 模式而不是其他模式?

python - HTTP/1.1 中的 400 Bad Request 但 HTTP/1.0 中没有

java - 安卓 Java : HttpURLConnection

c++ - 在 C++ 中解析 char 数组

rest - 将 GO map 转换为结构

swift - 如何从 swift 3 将 x-www-form-urlencoded 发布到 REST api

java - 我们应该如何设计不同内部微服务之间的通信

postgresql - REST API 何时使用查询参数或请求参数?

javascript - 加密随机生成 MIT 库 javascript