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

Cognito client_credentials流令牌调用ALB后端返回401问题排查

问题排查步骤

1. 校验ALB Cognito认证器配置

  • 确认ALB监听器规则绑定的Cognito用户池ARN、客户端ID,与你申请令牌使用的用户池、客户端完全一致,无字符拼写、大小写错误。
  • 检查认证器的令牌校验规则:client credentials流返回的是access_token,需确认认证器已配置为接受access_token校验,而非仅支持id_token。
  • 检查scope校验配置:你JWT内的scope为testapp.development/access,需确认认证器已允许该自定义scope,未配置不匹配的scope校验规则。

2. 校验令牌本身有效性

  • 确认JWT中iss字段对应的用户池IDus-east-1_<mypool-id>,与ALB认证器绑定的用户池ID完全一致。
  • 转换JWT中的exp时间戳为本地时间,确认令牌未过期。

3. 修正请求配置错误

  • 无需在请求路径或查询参数中携带scope,ALB的Cognito认证仅从Authorization请求头提取令牌校验,修改路径反而可能导致无法匹配ALB监听器的/graphql路径规则。
  • 你在申请令牌时携带的redirect_uri参数是多余的,client credentials流不需要该参数,申请令牌时建议将所有参数放在请求体而非URL查询串中,参考请求示例:
curl --location --request POST 'https://<MYDOMAIN>.auth.us-east-1.amazoncognito.com/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=MYCLIENTID' \
--data-urlencode 'client_secret=MYCLIENTSECRET' \
--data-urlencode 'scope=testapp.development/access'

4. 校验Cognito侧配置

  • 确认Cognito用户池内已创建标识符为testapp.development的资源服务器,且该资源服务器下存在access scope。
  • 确认你申请令牌使用的客户端,已被授权testapp.development/access这个自定义scope。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:39:01