Skip to content

Traefik ForwardAuth 中间件文档 ​

ForwardAuth(转发认证) ​

forwardAuth 中间件将身份认证委托给外部服务。

  • 如果认证服务返回 2XX 响应码,则授予访问权限,并继续执行原始请求。
  • 否则,认证服务器的响应将直接返回给客户端。

配置示例 ​

YAML 格式:

yaml
# 转发认证到 example.com
http:
  middlewares:
    test-auth:
      forwardAuth:
        address: "https://example.com/auth"

Kubernetes 格式:

yaml
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: test-auth
spec:
  forwardAuth:
    address: https://example.com/auth

配置选项 ​

字段描述默认值必填
address认证服务器的地址。-是
trustForwardHeader在 X-Forwarded-Method、X-Forwarded-Proto、X-Forwarded-Host、X-Forwarded-Uri 头中转发所有原始方法、协议、主机、URI 等,而非 X-Forwarded-For 头。更多信息参见 trustForwardHeader。false否
authResponseHeaders认证响应中要复制的头列表。[]否
authResponseHeadersRegex认证响应中要复制的头正则表达式。更多信息参见 authResponseHeadersRegex。""否
authRequestHeaders认证请求中要复制的头列表。[]否
addAuthCookiesToResponse允许在请求成功后转发 Set-Cookie 头到客户端。false否
forwardBody转发请求体到认证服务器。false否
maxBodySize转发请求体的最大字节数。更多信息参见 maxBodySize。-1否
maxResponseBodySize来自认证服务的响应体最大字节数。更多信息参见 maxResponseBodySize。-1否
headerField允许定义用于存储已认证用户的头字段。""否

trustForwardHeader ​

警告

启用后,Traefik 信任所有接收到的 X-Forwarded-* 头。

authResponseHeadersRegex ​

authResponseHeadersRegex 允许使用正则表达式来匹配认证响应头。例如:匹配 Foo 和 Bar 但不匹配 FooBar:

authResponseHeadersRegex: "^Foo|Bar$"

maxBodySize ​

  • 0 表示不转发请求体到认证服务器。
  • -1 表示使用 maxRequestBodyBytes 限制,默认为无限制(但至少支持 1MB)。

maxResponseBodySize ​

  • 0 禁用响应体读取。
  • -1 表示无限制。
  • 超过限制时,认证响应体将被截断。

在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布