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

如何将AWS ALB的X-AMZN-OIDC-*头转为Authorization Bearer Token头?

将X-AMZN-OIDC-*请求头转换为Authorization: Bearer格式的解决方案

可以通过AWS ALB的请求头修改功能结合AWS Load Balancer Controller的Ingress注解实现这个需求,具体配置如下:

核心配置思路

利用ALB监听器规则的modify-request-header动作,提取ALB注入的X-AMZN-OIDC-*令牌值,拼接成Bearer <token>格式后添加到Authorization请求头中。

具体Ingress配置示例

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    # 定义修改请求头的动作
    alb.ingress.kubernetes.io/actions.rewrite-auth-header: |
      {
        "Type": "modify-request-header",
        "ModifyRequestHeaderConfig": {
          "HeadersToAdd": [
            {
              "HeaderName": "Authorization",
              "HeaderValue": "Bearer ${request.headers.X-AMZN-OIDC-ACCESS-TOKEN}"
            }
          ],
          # 可选:如果需要覆盖已有的Authorization头,添加以下配置
          "HeadersToOverwrite": ["Authorization"]
        }
      }
    # 基础ALB配置
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
    alb.ingress.kubernetes.io/ssl-redirect: 'true'
    # OIDC认证相关配置(根据你的实际环境调整)
    alb.ingress.kubernetes.io/auth-type: oidc
    alb.ingress.kubernetes.io/auth-oidc-issuer: "你的OIDC发行者URL"
    alb.ingress.kubernetes.io/auth-oidc-client-id: "你的OIDC客户端ID"
  name: 你的Ingress名称
spec:
  ingressClassName: alb
  rules:
    - host: 你的域名.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              # 先引用定义好的头修改动作
              service:
                name: rewrite-auth-header
                port:
                  name: use-annotation

关键说明

  1. 令牌头选择:根据下游服务需求选择对应的令牌头:
    • 使用访问令牌:X-AMZN-OIDC-ACCESS-TOKEN
    • 使用身份令牌:X-AMZN-OIDC-ID-TOKEN
  2. 请求头覆盖:如果请求原本携带Authorization头,添加HeadersToOverwrite字段可以强制用新的Bearer令牌覆盖原有值。
  3. 动作引用:Ingress的path必须将后端指向注解中定义的rewrite-auth-header动作,这样请求会先完成头修改,再转发到实际业务服务。

内容的提问来源于stack exchange,提问作者Vishal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:31:50