阿里云API网关实现keycloak jwt授权
在开始前,需要让keycloak实现jwt认证,请查看http://www.emptyrealm.com/archives/176
- 在阿里云创建一个公开的获取token接口,该接口是让用户通过用户名和密码获取到token
请求方式为POSt
入参请求模式设置为透传
后端url设置为keycloak认证url即可 创建JWT插件(https://help.aliyun.com/zh/api-gateway/user-guide/jwt-authentication?spm=a2c4g.11186623.0.0.1ded6bbbRy7D8s),主要是jwk的参数的获取,先获取token,然后将token放在https://jwt.io/进行解密
里面就有我们需要的信息了。以下是简单模板---
parameter: Authorization # 从指定的参数中获取JWT, 对应API的参数
parameterLocation: header # API为映射模式时可选, API为透传模式下必填, 用于指定JWT的读取位置, 仅支持query
,header
preventJtiReplay: false # 是否开启针对jti
的防重放检查, 默认: false
#
#Json Web Key
的Public Key
jwk:
kty: RSA
e: AQAB
use: sig
kid: ataIExRUqCQj7wmAjpoqvBwPtYubXE_VSr3P6DgP1Rs # 在只配置一个JWK时,kid是可选的,但如果中JWT包含了kid,网关会校验kid的一致性
alg: RS256
n: qp5KAM8Rjyl5Pn84PSE83d5tmn_r9xqJ7QAUVUK7TXhyEj1x7VU31x0teEtPlUGRxjgb8IEhiBWZNAN7QSE7S3hg5ul7OmMbeNpEACTtQiTKcSFcmA2y_UgmU0w1rE9dxIJLTdcbU2Q8n0qR5y6eY2BsCwXAj7qhXZ9IyNXersLiPuz_q8ihFXCUykpNbZqpX9hby3ZiHpHppzYQPww4b9YXnCiEb7l8IKuT2tgYXnpT64GXaGP1KWReB4zGzw8B_zNvUAM5StjNNTPTQ-w40LTAT2KbIRkeCMdlGoGE-x2c6Yx5IsyhcBfof2DOTzd3K5GrPll3CBRrApB0LIS-ew- 创建一个/test-auth接口接口进行测试,然后将JWT插件绑定到这个接口,先通过token接口获取access_token,然后在请求/test-auth时放在header上即可,注意是Bearer token类型
PS: 插件返回内容可以在阿里云API网关日志上查到
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭