Traefik JWT 认证中间件文档
JWT(JSON Web Token 认证)— Traefik Hub 特性
提示
该中间件仅在 Traefik Hub 中可用。请参阅 Traefik Hub 的高级特性。
JWT 中间件验证 Authorization 头中是否提供了有效的 JWT 令牌(Authorization: Bearer <JWT>)。
如果令牌不能作为 Authorization 头传递,也可以通过 form data 或 query parameter 形式提供。更多信息参见 tokenKey 选项。
在无特定配置的情况下,JWT 中间件仅验证 JWT 的签名,并检查 nbf、exp 和 iat 标准声明(如果存在)。可以通过 Custom Claims Validation 配置自定义声明的验证。
配置示例
yaml
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: test-jwt
spec:
plugin:
jwt:
signingSecret: my-secret
forwardHeaders:
Group: grp
Expires-At: exp
claims: Equals(`grp`, `admin`)配置选项
| 选项 | 描述 | 默认值 | 必填 |
|---|---|---|---|
signingSecret | 用于签名验证的共享密钥。 | - | 是 |
signingSecretBase64Encoded | 指示 signingSecret 是否是 Base64 编码的。 | false | 否 |
publicKey | 用于 RS256/ES256 等非对称算法的公钥。 | - | 否 |
jwksFile | 包含 JWK 的本地文件路径。 | - | 否 |
jwksUrl | 远程 JWK 端点 URL。 | - | 否 |
forwardAuthorization | 是否将 Authorization 头转发到上游。 | false | 否 |
tokenKey | 从 form data 或 query parameter 中提取令牌的键名。参见 RFC 6750。 | "" | 否 |
claims | 自定义声明验证规则。 | - | 否 |
usernameClaim | 标识用户的 claim。 | - | 否 |
forwardHeaders | 要从令牌转发到上游的头映射。 | - | 否 |
clientConfig.tls.ca | CA 证书路径。 | - | 否 |
clientConfig.tls.cert | 客户端证书路径。 | - | 否 |
clientConfig.tls.key | 客户端私钥路径。 | - | 否 |
clientConfig.tls.insecureSkipVerify | 跳过 TLS 证书验证。 | false | 否 |
适用场景
- 微服务之间传递身份信息
- 单页应用(SPA)调用后端 API
- 移动应用访问受保护资源
- 第三方 API 集成时的身份验证
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。