返回

Kong JWT 插件的用法与作用解析

后端

使用 Kong JWT 插件保护您的 API

引言:

API 作为现代应用程序架构的关键部分,在传输敏感数据时需要可靠的身份验证和授权机制。JSON Web 令牌 (JWT) 作为一种广泛采用的标准,提供了安全高效的方式来验证和授权用户身份。为了简化 JWT 的集成,Kong JWT 插件应运而生,它为 Kong 网关提供了开箱即用的 JWT 处理功能。

启用 Kong JWT 插件

服务配置:

在 Kong 上为特定服务启用 JWT 插件,需要通过 API 请求进行配置:

curl -X POST http://localhost:8001/services/{service}/plugins \
-d 'name=jwt' \
-d 'config.jwks_uri=https://example.com/jwks.json' \
-d 'config.claims_to_verify=sub,email' \
-d 'config.claims_to_validate=nbf,exp' \
-d 'config.audience=https://example.com' \
-d 'config.issuer=https://example.com'
  • service: 要启用插件的服务名称或 ID。
  • jwks_uri: 指向 JSON Web 密钥集 (JWKS) 文档的 URL。
  • claims_to_verify: 要验证的 JWT 声明列表。
  • claims_to_validate: 要验证的 JWT 声明列表。
  • audience: JWT 受众。
  • issuer: JWT 颁发者。

验证 API 请求

要使用 JWT 验证 API 请求,需要在请求头中包含 Authorization 标头,其格式为 Bearer <JWT>

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYyMzkwODJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

授权 API 请求

通过指定要验证的声明,Kong JWT 插件可用于授权 API 请求。

config.claims_to_verify=sub,email

上述配置将验证 JWT 中的 subemail 声明。如果声明与配置匹配,则允许 API 请求。否则,将拒绝请求。

常见问题解答

1. 如何获取 JWKS 文档?

JWKS 文档通常由身份提供商提供。请参阅其文档获取 JWKS 文档的 URL。

2. 如何创建 JWT?

有多种工具可用于创建 JWT,例如 JWT.io、Auth0 JWT Generator 和 Google Cloud JWT Builder。

3. 如何验证 JWT?

类似于创建 JWT,也有许多工具可用于验证 JWT,例如 JWT.io、Auth0 JWT Validator 和 Google Cloud JWT Validator。

4. 如何处理 JWT 刷新令牌?

Kong JWT 插件不支持 JWT 刷新令牌。

5. 如何限制对 JWT 的访问?

Kong 插件本身不提供限制对 JWT 的访问的功能。可以考虑使用第三方工具或服务来实现此目的。

结论:

Kong JWT 插件是一个功能强大的工具,可简化 Kong 中 JWT 的身份验证和授权。通过其灵活的配置选项,它可以满足各种 API 安全需求。通过遵循本文概述的步骤,开发人员可以轻松集成 JWT,从而提高 API 的安全性并提供无缝的用户体验。