本文前提是,已经在服务器上安装了kong和他的ui界面,参考博客http://yinhezi.top/post/59.html。
先附一下kong的版本
kong : 0.14.0
kong-dashboard : 3.6
具体kong的web管理界面如下图
以下是一些权限认证的流程
一、key authentication:向api添加秘钥身份验证,然后可以在header头上添加密钥,以验证其请求。
1操作流程,首先去注册一个api,参考博客http://yinhezi.top/post/59.html
2然后去注册一个consumers
3添加plugins
4在consumers里添加auth-keys
5然后请求apis的接口时,headers里加上请求参数 “apikey”:"刚才那个auth-keys"
6此时已经配置好了,请求的时候,带上这个key就可以正常访问,不然就是报错,如下
二、jwt的方式
1先去添加jtw类型的plugins
(修正,下图的第四步不需要,用默认的就可以)
2去consumers里刚才那个user的auth,添加jwt-credentials
3顺便附一下参数的意思
4然后去生成token,并用生成的token去请求接口
jwt.encode({"typ":"JWT","alg":"HS256","iss":"a36c3049b36249a3c9f8891cdb127243"},key="e71829c351aa4242c2719cbfbe671c09")
这里注意,iss里的参数必须是,是刚才在consumers里的那个用户的jwt里的key值。简单来说,上边jwt生成token的参数中,iss是下图的key值,key是下图的secret值。至于这个iss是从哪里来的,其实是在第一步中“先去添加jtw类型的plugins”那里的config.key_claim_name 的值,那里不填的话,默认是iss。所以为了安全性,你可以自定义。
最后贴一个官方的文档地址(https://docs.konghq.com/hub/kong-inc/jwt/#documentation/https://docs.konghq.com/0.14.x/)
再说一下,到目前为止,kong实现了权限的验证,可是配合项目使用起来,现在还差点东西