用kong做权限验证

 nadia     2019-12-11     1999     0   

欢迎来到银盒子的世界~

本文前提是,已经在服务器上安装了kong和他的ui界面,参考博客http://yinhezi.top/post/59.html

先附一下kong的版本

kong :  0.14.0

kong-dashboard :  3.6

具体kong的web管理界面如下图


图片.png



以下是一些权限认证的流程

一、key authentication:向api添加秘钥身份验证,然后可以在header头上添加密钥,以验证其请求。

1操作流程,首先去注册一个api,参考博客http://yinhezi.top/post/59.html

2然后去注册一个consumers

图片.png

3添加plugins

图片.png

4在consumers里添加auth-keys

图片.png

图片.png

5然后请求apis的接口时,headers里加上请求参数 “apikey”:"刚才那个auth-keys"

图片.png

6此时已经配置好了,请求的时候,带上这个key就可以正常访问,不然就是报错,如下

图片.png

二、jwt的方式

1先去添加jtw类型的plugins

(修正,下图的第四步不需要,用默认的就可以)

图片.png

2去consumers里刚才那个user的auth,添加jwt-credentials

图片.png


图片.png

3顺便附一下参数的意思

图片.png

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。所以为了安全性,你可以自定义。图片.png

最后贴一个官方的文档地址(https://docs.konghq.com/hub/kong-inc/jwt/#documentation/https://docs.konghq.com/0.14.x/)

再说一下,到目前为止,kong实现了权限的验证,可是配合项目使用起来,现在还差点东西

Upstream Headers



发表评论