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

Amazon Cognito令牌签名无效报错求助:密钥长度需至少256位

解决思路

针对你遇到的invalid_token_signature: The secret length must be at least 256 bits报错,核心问题是身份提供商(IdP)用于签名令牌的密钥长度不达标,而非用户池客户端的secret,以下是具体排查和解决步骤:

  • 检查公司IdP的签名密钥配置

    • 确认IdP用来签名JWT的密钥规格:如果是HMAC算法(如HS256),密钥长度必须≥256位(32字节);如果是RSA算法(如RS256),密钥对长度至少2048位。很多IdP默认的短密钥(比如1024位RSA、16字节HMAC密钥)会触发这个错误。
    • 重新生成符合长度要求的密钥,更新到IdP的配置中,同时同步到Cognito的IdP集成设置里(比如更新SAML元数据、刷新OIDC的JWKS端点)。
  • 验证Cognito与IdP的密钥同步状态

    • 若用OIDC协议,手动访问IdP的JWKS端点,检查返回的密钥参数(如alg对应算法、kty密钥类型、密钥长度相关字段)是否符合要求,确保Cognito能获取到最新的合法密钥。
    • 若用SAML协议,检查IdP提供的元数据文件中的签名证书,确认其密钥长度≥2048位,替换旧证书到Cognito的IdP配置项中。
  • 修正用户池客户端的secret配置

    • 这个报错和客户端secret无关,但要注意:如果你的应用是SPA、移动端这类公开客户端,Cognito不应该设置client_secret,设置后反而可能引发流程异常;只有后端服务这类机密客户端才需要配置Cognito生成的client_secret(Cognito生成的secret长度默认达标)。
    • 对应调整Amplify配置:公开客户端移除clientSecret字段,机密客户端确保配置的secret是Cognito生成的正确值,之后重新测试认证流程。
  • 确认令牌签名算法兼容性

    • 检查IdP使用的签名算法是否在Cognito支持的列表内,且算法对应的密钥长度要求已满足。比如Cognito支持RS256、HS256,但HS256必须搭配256位以上的密钥,RS256需要2048位以上的RSA密钥对,不匹配的话会触发签名验证失败。
  • 开启日志定位细节

    • 打开Cognito用户池的CloudWatch日志(在用户池配置的「高级安全设置」中开启),查看更详细的错误日志,明确是IdP令牌的签名密钥还是其他环节的密钥不达标,进一步缩小排查范围。

内容的提问来源于stack exchange,提问作者K.Fanedoul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:45:07