You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Envoy Gateway同时支持OIDC认证与Bearer Token验证?

解决Envoy Gateway同时支持OIDC重定向与JWT Bearer Token认证的方案

你的核心问题是当前SecurityPolicy同时启用OIDC和JWT时,默认要求两种认证都通过,导致带有效Bearer Token的请求因缺少OIDC会话Cookie被强制重定向。要实现「无Token时走OIDC重定向,有有效Bearer Token时直接验证放行」的效果,需要调整认证策略的组合逻辑,让两种认证方式满足任一即可通过。

修改后的配置示例

apiVersion: gateway.envoyproxy.io/v1alpha1
kind: SecurityPolicy
metadata:
  name: authpolicy
spec:
  targetRefs:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute
      name: foo
  auth:
    # 配置两个独立认证提供者:JWT Token验证、OIDC重定向登录
    providers:
      - name: jwt-bearer-auth
        jwt:
          providers:
            - name: example
              remoteJWKS:
                uri: https://...
              # 明确指定从Authorization头提取Bearer Token
              fromHeaders:
                - name: Authorization
                  prefix: "Bearer "
      - name: oidc-redirect-auth
        oidc:
          provider:
            issuer: "https://..."
          clientID: "..."
          clientSecret:
            name: "envoygw-oidc-clientsecret"
          forwardAccessToken: true
          refreshToken: true
    # 设置认证组合模式为ANY:任一认证通过即可放行
    combine:
      mode: ANY

关键配置说明

  1. 用auth.providers包裹两种认证方式:将JWT和OIDC作为独立的认证提供者,替代原来平级配置的方式,避免默认的「同时满足」逻辑冲突。
  2. combine.mode: ANY:告诉Envoy Gateway,只要请求通过其中一种认证即可放行,无需同时满足两种要求。
  3. JWT的fromHeaders配置:明确指定从Authorization头提取Bearer Token,确保JWT验证逻辑能正确识别应用发送的Token格式。

验证逻辑

  • 浏览器无认证访问:JWT验证失败,自动触发OIDC重定向流程,完成登录后通过OIDC认证放行。
  • 应用携带有效Bearer Token访问:JWT验证通过,直接放行,不会触发OIDC重定向。

内容的提问来源于stack exchange,提问作者Radek 'Goblin' Pieczonka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 10:34:56