Skip to content

Traefik OIDC 认证中间件文档

OIDC(OpenID Connect 认证)— Traefik Hub 特性

提示

该中间件仅在 Traefik Hub 中可用。请参阅 Traefik Hub 的高级特性

OIDC 认证中间件通过将身份认证委托给外部 OIDC 提供商来保护你的应用。

配置示例

OIDC 中间件:

yaml
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: test-oidc
  namespace: whoami
spec:
  plugin:
    oidc:
      issuer: "https://tenant.auth0.com/realms/myrealm"
      redirectUrl: "/callback"
      clientID: "urn:k8s:secret:my-secret:clientId"
      clientSecret: "urn:k8s:secret:my-secret:clientSecret"
      session:
        name: customsessioncookiename
        sliding: false
        refresh: false
        expiry: 10
        sameSite: none
        httpOnly: false
        secure: true
      stateCookie:
        name: customstatecookiename
        maxAge: 10
        sameSite: none
        httpOnly: true
        secure: true
      forwardHeaders:
        Group: grp
        Expires-At: exp
      claims: Equals(`grp`, `admin`)
      csrf: {}

Kubernetes Secret:

yaml
apiVersion: v1
kind: Secret
metadata:
  name: my-secret
stringData:
  clientID: my-oidc-client-name
  clientSecret: mysecret

配置选项

选项描述必填
issuerOIDC 提供商发布的 issuer URL(例如 https://tenant.auth0.com/realms/myrealm)。
redirectUrlOIDC 提供商完成登录后回调的 URL。
clientID在 OIDC 提供商注册的应用的 Client ID(建议使用 Kubernetes Secret)。
clientSecretClient Secret(建议使用 Kubernetes Secret)。
claims自定义声明验证规则。
usernameClaim标识用户的 claim。
forwardHeaders要从 OIDC ID Token 转发到上游的头映射。
session会话 Cookie 配置。
stateCookie状态 Cookie 配置(CSRF 防护)。
csrfCSRF 防护配置。
clientConfig.tls.ca访问 OIDC 提供商时使用的 CA 证书路径。
clientConfig.tls.cert客户端证书路径。
clientConfig.tls.key客户端私钥路径。
clientConfig.tls.insecureSkipVerify跳过 TLS 证书验证。

适用场景

  • 企业级单点登录(SSO)
  • 集成第三方身份提供商(Auth0、Okta、Keycloak、Azure AD 等)
  • 多应用统一身份认证
  • 满足合规性要求的强身份认证

在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布