Skip to content

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 的签名,并检查 nbfexpiat 标准声明(如果存在)。可以通过 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.caCA 证书路径。-
clientConfig.tls.cert客户端证书路径。-
clientConfig.tls.key客户端私钥路径。-
clientConfig.tls.insecureSkipVerify跳过 TLS 证书验证。false

适用场景

  • 微服务之间传递身份信息
  • 单页应用(SPA)调用后端 API
  • 移动应用访问受保护资源
  • 第三方 API 集成时的身份验证

在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。

基于 MIT 协议发布