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

AWS API Gateway配置Cognito授权后ASP.NET调用无需Token即可访问的问题

问题排查与解决步骤

1. 确认API授权器绑定与部署状态

  • 检查所有需要授权的API方法,确保每个方法的「请求」设置中,「授权」选项已选择你的Cognito授权器,而非「无」。
  • 新添加或修改授权器后,必须重新部署API到对应阶段(如prod),未部署的配置不会生效。

2. 排查API Gateway资源策略

  • 查看API的资源策略,若存在"Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke"这类规则,会直接允许匿名访问,需修改为仅授权Cognito用户访问,或删除该宽松规则。

3. 核对Cognito授权器配置

  • 确认授权器的「令牌来源」设为Authorization头(Bearer Token),与代码中使用的请求头一致。
  • 若开启了授权器缓存,可能缓存了之前的匿名访问记录,尝试关闭缓存或清空缓存后重新测试。

4. 验证请求路径与日志

  • 确认ASP.NET代码调用的API路径和控制台测试的路径完全一致,避免误调用到未配置授权的资源。
  • 开启API Gateway的CloudWatch日志,查看请求详情:是否触发授权器、授权结果如何,定位是否存在跳过授权的情况。

5. 测试无效Token的访问情况

  • 故意在请求中携带无效Token,若仍能访问,说明授权器未生效;若被拒绝,则需排查是否存在缓存或资源策略导致的绕过问题。

添加Token的代码示例:

client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 03:03:13