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

如何在AWS API Gateway内部传递后端API Token?

无需Lambda实现API Gateway内部获取并传递后端OAuth2 Token

实现步骤

1. 确认Cognito授权器生效

确保目标API方法已绑定Cognito用户池授权器,客户端请求时仅需携带Cognito的Access Token或ID Token在Authorization头中。授权器会自动验证Token有效性,仅通过验证的请求才会进入后续集成流程。

2. 配置API Gateway集成链(Integration Chaining)

利用API Gateway的集成链功能,可让单个API方法依次调用两个HTTP集成,全程无需Lambda:

第一阶段:调用独立Token生成API

  • 进入API Gateway控制台的目标方法,打开集成请求设置
  • 选择HTTP集成类型,填写Token生成API的地址(若为私有资源,需关联对应VPC Link)
  • 设置与Token生成API匹配的请求方法(如POST)
  • 在请求头/参数映射中,传递Token生成所需参数:
    • 例如,若需用户标识,可映射请求头X-User-ID为$context.authorizer.claims.sub(从Cognito授权器的上下文提取用户唯一ID)
    • 其他所需参数可从$context.authorizer或客户端请求中提取
  • 配置集成响应,确保能正确解析Token生成API返回的JSON响应(需确认返回的Token字段名,如access_token)

第二阶段:转发请求到后端私有API

  • 在同一方法的集成设置中添加第二个集成(集成链最多支持2个步骤)
  • 选择HTTP集成类型,填写后端私有API地址并关联对应VPC Link
  • 设置与后端API匹配的请求方法
  • 在请求头映射中,将第一阶段获取的Token注入后端API所需的认证头:
    • 例如,映射Authorization头为Bearer $input.path('$.access_token')(假设Token生成API返回的JSON中access_token是目标字段)
  • 配置集成响应,直接将后端API的响应返回给客户端

流程验证:用Postman调用API Gateway端点时,只需携带Cognito Token,API Gateway会自动完成:Cognito验证 → 调用Token生成API获取后端Token → 携带Token转发到后端API → 返回响应给客户端。


方案对比:内部传递vs客户端传双Token

推荐内部传递Token的核心原因

  • 安全层面:客户端无需接触后端API的OAuth2凭证,减少Token泄露风险;API Gateway统一管控Token的获取和传递,便于审计
  • 开发效率:客户端仅需维护Cognito一套认证逻辑,无需处理两种Token的过期、刷新,降低开发复杂度
  • 架构解耦:后端API或认证规则变更时,仅需修改API Gateway配置,无需调整客户端代码
  • 体验优化:客户端请求只需携带一个Token,减少请求冗余

不推荐客户端传双Token的场景

  • 客户端需同时维护两套Token的生命周期管理,开发成本高
  • 双Token传递增加了敏感凭证泄露的概率
  • 架构耦合度高,后端或Cognito的认证规则变更时,客户端需同步修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:55:38