1 Basic Auth身份认证配置
Basic Auth插件
# 在服务上配置插件
curl -X POST http://127.0.0.1:8001/services/{service}/plugins --data "name=basic-auth" --data "config.hide_credentials=true"
#在路由上配置插件
curl -X POST http://127.0.0.1:8001/routes/{route_id}/plugins --data "name=basic-auth" --data "config.hide_credentials=true"
通过konga UI为路由添加basic-auth插件
创建用户并添加Basic凭证
测试
2 JWT身份认证配置
配置 JWT 插件
调用 Kong Admin API services/${service}/plugins ,创建 JWT 插件的配置:
curl -X POST http://127.0.0.1:8001/services/tulingmall-product/plugins --data "name=jwt"
name 参数,设置为 jwt 表示使用 JWT 插件。
# 查看插件列表
curl -X GET localhost:8001/services/tulingmall-product/plugins
#查看jwt插件
curl -X GET localhost:8001/services/tulingmall-product/plugins/jwt
#删除jwt插件
curl -X DELETE localhost:8001/services/tulingmall-product/plugins/{jwt.id}
通过konga UI操作添加 jwt 插件
测试
请求被kong安全拦截
创建Consumer
调用 Kong Admin API consumers ,创建一个 Consumer 消费者:
curl -i -X POST http://localhost:8001/consumers/ --data "username=fox"
创建 consumer 的 jwt 凭证
调用 Kong Admin API consumers/{username}/{plugin} ,生成该消费者的 JWT 信息:
- {username} 路径参数,为 Consumer 的用户名。
- {plugin} 路径参数,为 Plugin 的插件名。
可以指定算法 algorithm , iss 签发者 key ,密钥 secret ,也可以省略,会自动生成。
curl -i -X POST http://localhost:8001/consumers/fox/jwt/ -d "algorithm=HS256" -d "key=fox123" -d "secret=uFLMFeKPPL525ppKrqmUiT2rlvkpLc9u"
{
"rsa_public_key":null,
"algorithm":"HS256",
"id":"3dc4d177-8a7a-4edc-bc88-ee7aa2447fc7",
"tags":null,
"consumer":{
"id":"8e7fb82d-68ef-4f2b-a30c-613866378525"
},
"secret":"uFLMFeKPPL525ppKrqmUiT2rlvkpLc9u",
"created_at":1625803149,
"key":"fox123"
}
查看fox的jwt凭证
curl -X GET localhost:8001/consumers/fox/jwt
生成jwt token
业务服务器根据 kong 生成的 jwt 凭证中的 algorithm、key(iss)、secret 进行 token 的演算和下发。请求 鉴权接口 需携带 Authorization: Bearer jwt 进行请求。测试可以在https://jwt.io/中通过Debugger生成jwt token
获取到jwt token令牌:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4
gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJpc3MiOiJmb3gxMjMifQ.hqHGVujYheALxXpEVtgisA5pPTGf
QYet0IKadnYPtj8
测试
curl http://192.168.65.200:8000/pms/productInfo/42 -H "Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4
gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJpc3MiOiJmb3gxMjMifQ.hqHGVujYheALxXpEVtgisA5pPTGf
QYet0IKadnYPtj8"