apisix网关及插件实践
我们在sidecar构架之dapr授权中间件使用的dapr自身的中间件进行授权校验,但一般情况,我们会使用网关,在网关层进行授权认证,本次我们来使用apisix网关实践一下。
这里我们搭建了oauth2 server,并完成了oidc的搭建OIDC搭建之Ory Hydar 2.0实践
部署
1 | #将 Apache APISIX 的 Docker 镜像下载到本地 |
使用
apisix-dashboard
apisix-dashboard访问地址:
http://localhost:9000
账号密码:admin / admin
新建Upstream
新建Route
首先进入Route列表页,点击创建Create如下图:
路由测试
可以直接通过浏览器访问:http://localhost:9080/web
会发现已经成功路由到Web1和Web2服务,并在二者间切换。
1 | hello web1 |
插件
jwt-auth
增加消费者
此步骤主要确定 key 和 secret
1 | { |
开启路由jwt-auth
对应上 key secret
测试
开启一个 public-api 用于 apisix 提供的token生成及校验
1
2
3
4 {
"disable": false,
"uri": "/apisix/plugin/jwt/sign"
}
生成一个token
1 | curl https://api.XXX.com/apisix/plugin/jwt/sign?key=user |
- 有token
1
2curl --location --request GET 'https://api.XXX.com/test/v1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJrZXkiOiJ1c2VyIiwiZXhwIjoxNjcyMjI3OTMxfQ.IK0rx-ScZM5c70FSql1VnRmTM1dfs1KoOpCgfqwS_YQ'curl –location –request GET ‘https://api.XXX.com/test/v1‘1
2
* 没token1
2
3
4```
{
"message": "Missing JWT token in request"
}