Gloo Gateway 外部认证配置格式演进史

Gloo Gateway 外部认证配置格式演进史

gloo The Feature-rich, Kubernetes-native, Next-Generation API Gateway Built on Envoy gloo 项目地址: https://gitcode.com/gh_mirrors/glo/gloo

前言

在现代API网关架构中,认证授权机制是保障系统安全的重要环节。Gloo Gateway作为一款功能强大的API网关,其外部认证(extauth)功能经历了多次迭代优化。本文将详细解析Gloo Gateway外部认证配置格式的演进历程,帮助开发者理解不同版本间的差异与最佳实践。

最新配置格式 (Gloo Gateway Enterprise >=0.20.1)

在Gloo Gateway Enterprise 0.20.1版本中,外部认证配置得到了显著简化。新格式将extauth配置直接置于资源(如VirtualService)的Options属性下,大幅提升了可读性和易用性。

新格式示例

options:
  extauth:
    configRef:
      name: basic-auth
      namespace: gloo-system

旧格式对比

virtualHostPlugins:
  extensions:
    configs:
      extauth:
        configRef:
          name: basic-auth
          namespace: gloo-system

关键改进

  1. 配置层级减少,结构更清晰
  2. 与Gloo Gateway 1.0+架构更契合
  3. 降低了配置错误的可能性

多级认证配置 (Gloo Gateway Enterprise >=0.19.0)

0.19.0版本引入了革命性的改变,将认证配置提升为顶级资源(AuthConfig),并支持在路由(Route)和加权目标(WeightedDestination)级别进行配置。

AuthConfig资源示例

apiVersion: enterprise.gloo.solo.io/v1
kind: AuthConfig
metadata:
  name: basic-auth
  namespace: gloo-system
spec:
  configs:
  - basicAuth:
      realm: "test"
      apr:
        users:
          user:
            salt: "TYiryv0/"
            hashedPassword: "8BvzLUO9IfGPGGsPnAgSu1"

核心特性

  1. 多级认证:支持虚拟主机、路由和加权目标三级配置
  2. 配置复用:AuthConfig可被多个虚拟服务引用
  3. 灵活覆盖:子资源可覆盖父级认证设置
  4. 禁用选项:特定路由可完全禁用认证

典型应用场景

routes:
- matcher:
    prefix: /admin
  routePlugins:
    extensions:
      configs:
        extauth:
          name: admin-auth # 使用更严格的admin认证
- matcher:
    prefix: /public
  routePlugins:
    extensions:
      configs:
        extauth:
          disable: true # 完全禁用认证

多步骤认证支持 (Gloo Gateway Enterprise >=0.18.21)

0.18.21版本将extauth从单一对象改为数组,实现了多步骤认证流程。

配置示例

extauth:
  configs:
  - basicAuth: {...} # 第一步:基础认证
  - oauth2: {...}    # 第二步:OAuth验证

工作流程

  1. 按顺序执行认证步骤
  2. 任何一步失败即终止流程
  3. 全部成功才算认证通过

优势

  1. 支持复杂认证场景
  2. 可组合多种认证机制
  3. 执行顺序明确可控

原始配置格式 (Gloo Gateway Enterprise <0.18.21)

最初的配置格式仅支持虚拟主机级别的认证,功能相对简单。

基础示例

virtualHostPlugins:
  extensions:
    configs:
      extauth:
        basicAuth:
          realm: "test"
          apr:
            users:
              user:
                salt: "TYiryv0/"
                hashedPassword: "8BvzLUO9IfGPGGsPnAgSu1"

局限性

  1. 仅虚拟主机级别配置
  2. 路由只能选择禁用
  3. 不支持多认证步骤
  4. 配置无法复用

演进总结

| 版本 | 主要特性 | 配置复杂度 | 灵活性 | |------|---------|-----------|--------| | <0.18.21 | 单虚拟主机认证 | 低 | 低 | | >=0.18.21 | 多步骤认证 | 中 | 中 | | >=0.19.0 | 多级认证+AuthConfig资源 | 高 | 高 | | >=0.20.1 | 简化配置结构 | 中 | 高 |

最佳实践建议

  1. 新项目:直接采用>=0.20.1的最新简化格式
  2. 旧系统升级:逐步迁移至AuthConfig资源模式
  3. 复杂场景:利用多步骤认证满足严格安全需求
  4. 性能考量:合理规划认证步骤顺序,将高频失败检查前置

通过理解Gloo Gateway外部认证配置的演进历程,开发者可以更好地设计适合自身业务场景的安全架构,在保障系统安全的同时提供最佳用户体验。

gloo The Feature-rich, Kubernetes-native, Next-Generation API Gateway Built on Envoy gloo 项目地址: https://gitcode.com/gh_mirrors/glo/gloo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花琼晏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值