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配置选项
| 选项 | 描述 | 必填 |
|---|---|---|
issuer | OIDC 提供商发布的 issuer URL(例如 https://tenant.auth0.com/realms/myrealm)。 | 是 |
redirectUrl | OIDC 提供商完成登录后回调的 URL。 | 是 |
clientID | 在 OIDC 提供商注册的应用的 Client ID(建议使用 Kubernetes Secret)。 | 是 |
clientSecret | Client Secret(建议使用 Kubernetes Secret)。 | 是 |
claims | 自定义声明验证规则。 | 否 |
usernameClaim | 标识用户的 claim。 | 否 |
forwardHeaders | 要从 OIDC ID Token 转发到上游的头映射。 | 否 |
session | 会话 Cookie 配置。 | 否 |
stateCookie | 状态 Cookie 配置(CSRF 防护)。 | 否 |
csrf | CSRF 防护配置。 | 否 |
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 的商业支持。