KONG 是一款很受欢迎的 API GATEWAY,使用它可以降低开发微服务的代码,因为我们可以通过配置来实现诸如认证 (Authentication) 和 (Authorization) 的功能。
JWT 是现代 Web 软件经常用到的一种认证和授权方式,要让KONG 支持 JWT 认证,开发者需要首先配置好在 KONG 中为指定的微服务增加一个 service,然后给 service 增加一个 router。
给 router 增加 JWT 插件
接下来开发者需要给 router 增加 jwt 插件。
在下图中,我们使用了 konga UI来给指定的服务增加 JWT 插件。
增加一个 consumer
为验证 JWT,一般会使用对称密钥 (HS256) 或者非对称密钥 ( RS 256) 方式。要设置密钥,开发者需要给 KONG 增加一个 consumer, 对于非对称密钥,KONG 要求使用 PEM 格式。下面就是一个典型的 PEM 公钥例子:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg4kxplaTQzYfEbS2AG3v
vQkW2w1qhtwhu5wfH1fwutZYf3jfwQfuGMRfLD4xlOTvRSeiNtYLQa54MmQNEVIi
48psQdAEyA3hib34KHwfWcKYeGa5Jlrw0zG11+szwnOV9/UXTGfv9hTKDxWCvaQS
xXUmvej9Ik4L