Kong JWT 插件的用法与作用解析
2023-03-27 04:00:42
使用 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 中的 sub
和 email
声明。如果声明与配置匹配,则允许 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 的安全性并提供无缝的用户体验。