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

基于AWS Cognito用户池的多租户:HTTP API Gateway多用户池JWT授权咨询

解决方案:HTTP API Gateway 多Cognito用户池身份验证

方案1:自定义Lambda Authorizer替代原生JWT Authorizer

  • 编写Lambda函数处理多用户池的JWT验证逻辑:
    1. 从请求头提取Authorization字段中的Bearer Token
    2. 预存所有目标Cognito用户池的签发者(iss)与JWKS密钥集(可缓存密钥集降低性能损耗)
    3. 依次用每个用户池的密钥验证Token的签名、过期时间、受众(Audience)等核心字段
    4. 验证通过后,返回符合HTTP API要求的IAM策略,同时可注入租户ID等自定义上下文信息
  • 关键注意事项:
    • 严格校验Token的iss字段,确保仅匹配对应租户的用户池,杜绝跨租户越权
    • 处理Token验证失败的分支,返回明确的拒绝策略
    • 实现JWKS密钥缓存机制,避免重复请求Cognito服务

方案2:通过Cognito联合身份池统一身份源

  • 将多个Cognito用户池配置为联合身份池的身份提供者:
    1. 创建Cognito联合身份池,添加所有需要的用户池作为身份源
    2. 用户通过各自租户的用户池获取Token后,调用联合身份池API交换为统一的身份凭证
    3. HTTP API的JWT Authorizer配置为验证联合身份池签发的Token
  • 优势:复用HTTP API原生JWT Authorizer能力,无需编写复杂的自定义验证逻辑
  • 限制:需额外处理Token交换流程,且需通过联合身份池的权限配置严格隔离不同租户

方案3:按租户拆分路由/阶段绑定独立JWT Authorizer

  • 为每个租户创建专属的JWT Authorizer并绑定到对应路由或阶段:
    1. 针对每个租户的用户池,创建单独的HTTP API JWT Authorizer
    2. 配置租户专属路由(如/tenant-a/*、/tenant-b/*),分别绑定对应的Authorizer
    3. 前端根据租户标识请求对应路由,确保Token与Authorizer匹配
  • 适用场景:租户数量较少,路由结构可按租户清晰拆分的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:23:13