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

AWS Cognito调用AssumeRoleWithWebIdentity报错:缺失aud声明

解决AssumeRoleWithWebIdentity报错"Invalid login token. Missing a required claim: aud"

这个问题我之前帮不少开发者排查过,核心原因要么是用错了Cognito返回的令牌类型,要么是IAM角色的信任策略配置不匹配。咱们一步步来解决:

1. 务必使用Cognito的ID Token而非Access Token

你现在传入的是Cognito的Access Token,但STS的AssumeRoleWithWebIdentity API要求的是ID Token。这两者的aud(受众)声明完全不同:

  • Access Token的aud是你的Cognito用户池ID(格式类似arn:aws:cognito-idp:us-east-1:1234567890:userpool/us-east-1_XXXXXXX),不符合STS的校验要求;
  • ID Token的aud是你在Cognito用户池中创建的客户端ID,这才是STS期望的受众值。

所以第一步,把API调用里的WebIdentityToken参数替换成Cognito认证后返回的ID Token值。

2. 检查IAM角色的信任策略配置

确保你的跨账号角色(arn:aws:iam::id:role/_cross_account_role)的信任策略允许来自Cognito的身份认证,并且条件匹配正确的aud值。

示例信任策略(针对Cognito身份池)

如果是通过Cognito身份池中转认证,信任策略应该配置成这样:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "你的Cognito身份池ID"
        },
        "ForAnyValue:StringLike": {
          "cognito-identity.amazonaws.com:amr": "authenticated"
        }
      }
    }
  ]
}

示例信任策略(直接使用Cognito用户池作为身份提供商)

如果直接用用户池作为身份源,信任策略要指向用户池ARN,并校验客户端ID:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:cognito-idp:你的区域:你的账号ID:userpool/你的用户池ID"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "arn:aws:cognito-idp:你的区域:你的账号ID:userpool/你的用户池ID:aud": "你的Cognito用户池客户端ID"
        }
      }
    }
  ]
}

3. 验证JWT的aud声明

你可以用本地工具(比如jwt命令行工具)解码令牌,确认aud字段是否符合要求。比如执行:

jwt decode 你的ID_TOKEN值

查看输出中的aud字段,确保它和你信任策略里配置的客户端ID/身份池ID完全一致。

如果以上步骤都完成后还是报错,建议检查令牌的exp字段是否过期,或者确认你的服务器环境能正常访问Cognito的公钥端点(用于验证令牌签名):https://cognito-idp.{你的区域}.amazonaws.com/{你的用户池ID}/.well-known/jwks.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:07:52