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

AWS API Gateway Authorizer如何同时支持Cognito UserPool认证与公共访问

方案1:配置授权器为「可选」模式

这是最适配你当前单端点多操作场景的解决办法,AWS API Gateway(REST/HTTP API类型均支持)允许将绑定的JWT授权器设置为非强制校验:

  • 如果你使用的是HTTP API:进入对应路由的授权配置页,关闭「授权必填」开关即可
  • 如果你使用的是REST API:进入对应方法的「方法请求」配置页,将授权器对应的「Authorization Required」选项设置为false

配置完成后生效逻辑如下:

  • 请求携带有效JWT:授权器会正常解析Cognito用户信息(比如用户所属组、用户ID等),放入请求上下文传递给后端
  • 请求未携带JWT/携带无效JWT:不会被网关拦截,会直接转发到你的后端服务,请求上下文不会包含授权相关字段。你可以在业务逻辑中根据请求body里的操作类型自行判断权限:

比如检测到当前是管理员操作,就校验请求上下文是否存在管理员用户组标识,不存在直接返回403;如果是公开操作则直接正常处理即可。

方案2:拆分路由(可选优化)

如果后续你的业务操作类型持续迭代,建议把公开操作和管理员操作拆分到两个独立路由:

  • 公开路由不绑定任何授权器,所有请求默认可以访问
  • 管理员路由绑定强制校验的JWT授权器,直接在网关层拦截未认证请求,不需要后端再做冗余校验
注意事项
  • 可选授权器模式下必须在后端做好权限校验逻辑,避免未认证用户越权访问敏感操作
  • 如果后端需要二次校验JWT签名,可以直接用Cognito User Pool公开的JWKS密钥校验,不需要自行维护密钥

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:45:04