kong hmac 应用实践
程序员文章站
2022-05-12 22:24:38
...
kong hmac 应用实践
service 创建
curl -i -X POST --url http://127.0.0.1:8001/services/ --data 'name=lxy-service' --data 'url=http://127.0.0.1:8090/project/'
注:请根据实际情况填写自己服务地址url
route 创建
curl -i -X POST --url http://127.0.0.1:8001/services/lxy-service/routes --data 'paths[]=/test/'
为services 添加 hmac插件
POST http://127.0.0.1:8001/services/a721cb35-d3e4-41d6-bace-2acf7c688b7c/plugins
{
"name":"hmac-auth",
"config": {
"enforce_headers": ["testhamc"],
"algorithms": ["hmac-sha1", "hmac-sha256"]
}
}
创建consumer
curl -i -X POST http://127.0.0.1:8001/consumers
为consumer 创建证书
POST http://127.0.0.1:8001/consumers/5b10f786-1392-49c5-b64f-b74195b481da/hmac-auth
{
"username":"test",
"secret":"test123456"
}
以上配置完成,现在看一下怎么用:
先试着访问一下
可以看到,提示需要认证,参考官方文档
生成签名
import hashlib
import hmac
import base64
message = "test: 123456"
secret = b"test123456"
signature = base64.b64encode(hmac.new(secret, message.encode("utf8"), digestmod=hashlib.sha256).digest())
print(signature)
添加请求头Authorization,在次访问,提示如下信息
根据提示需要添加x-date信息
import datetime
GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
time = datetime.datetime.utcnow().strftime(GMT_FORMAT)
print(time)
获取x-date数据,添加至请求头,访问,可以成功返回
根据官方文档, 请求需要添加如下请求头
-H "Host: hmac.com" \
-H "Date: Thu, 22 Jun 2017 17:15:21 GMT" \
-H 'Authorization: hmac username="alice123", algorithm="hmac-sha256", headers="date request-line", signature="ujWCGHeec9Xd6UD2zlyxiNMCiXnDOWeVFMu5VeRUxtw="'
下一篇: 做网站要学会数据分析