keycloak和阿里api网关集成

keycloak和阿里api网关集成,使用keycloak来作为阿里api网关的鉴权,jwt认证,oauth2.0保护api

1.创建分组和vpc授权

2.我们暴露一个token api

我们创建一个token api,认证方式选择无,

协议选择https,使用post,入参透传,地址输入/token

后端选择vpc授权,输入vpc名字,选择https,填入实际获取token地址

然后点保存,发布

这样我们的获取token的api地址就是

https://api.test.com/token

 

 

 

 

 

 3.创建jwt认证插件

参考阿里官方文档JWT认证插件_插件使用_API 网关 - 阿里云 (aliyun.com)

这里需要注意的是要把claim 参数,需要定义client id,在第二个插件会用到,如果这里不指明,后面无法使用

这个插件的作用是验证token有效性

4 创建访问控制插件

参考访问控制插件_插件使用_API 网关 - 阿里云 (aliyun.com)

这个插件是用来验证client id,禁止没有授权的client id访问这个api

结合第一个插件,可以实现完整的token鉴权

5.创建api,绑定上面2个插件,并发布

假设api地址如下

https://api.test.com/invoice

6.获取token

curl https://api.test.com/token -X POST -d "client_id=xxxx&client_secret=xxxx&grant_type=client_credentials"

7.访问api

curl https://api.test.com/invoice -H "Authorization: Bearer <token>"

这个做法的缺点如下

因为验证方式选择无,所以无法确定app绑定,日志里无法找到是谁调用的

 

posted @ 2021-01-07 12:00  lost in java  阅读(530)  评论(0编辑  收藏  举报