1

请...

我需要一些有关为 KONG API 配置和使用 HMAC 的帮助。

我正在关注https://getkong.org/plugins/hmac-authentication/上发布的手册, 其中包含演示凭据 bob/secret456

问题在于 HMAC 身份验证的使用。我仍然收到 403 错误 - 禁止。

这是我的命令行输出:

root@test.com# curl -v http://X:8000/public4/ -H 'Authorization: hmac username="bob", algorithm="hmac-sha1", headers="Date content-md5", signature="Base64(HMAC-SHA1(secret456))"'
> GET /public4/ HTTP/1.1
> User-Agent: curl/7.35.0
> Host: XXX:8000
> Accept: */*
> Authorization: hmac username="bob", algorithm="hmac-sha1", headers="X-Date content-md5", signature="Base64(HMAC-SHA1(secret456))" <<- IS THIS CORRECT?
>
< HTTP/1.1 403 Forbidden
< Date: Mon, 27 Mar 2017 13:15:07 GMT
< Content-Type: application/json; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
* Server kong/0.9.7 is not blacklisted
< Server: kong/0.9.7
<
{"message":"HMAC signature cannot be verified, a valid date or x-date header is required for HMAC Authentication"}
* Connection #0 to host XXX left intact

香港消费者:

{
  "total": 1,
  "data": [
    {
      "consumer_id": "e98e1ca2-2f13-4430-a658-cabdd4e6cd26",
      "created_at": 1490616124000,
      "username": "bob",
      "id": "037db653-8b38-4a7e-b139-1040856b7cfb",
      "secret": "secret456"
    }
  ]
}

任何提示或指南将不胜感激。Github 问题已关闭,评论没有帮助。我仍然遇到同样的错误。

确实谢谢你。

4

1 回答 1

2

您在授权标头中包含字符串文字“Base64(HMAC-SHA1(secret456))”。您应该计算密码的 HMAC,对其进行 base64 编码,并包含该值。

于 2017-03-28T17:19:55.000 回答