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

通过Okta IdP发起登录AWS Cognito时遇无效SAML响应/中继状态错误

排查IdP发起登录时AWS Cognito返回“invalid SAML response/relay state”错误

以下是针对该问题的具体排查方向:

1. 验证Relay State的格式与编码

  • 确保Relay State内的参数完全匹配Cognito要求:
    • identity_provider必须是用户池中创建的SAML身份提供商的精确名称(区分大小写)
    • client_id是Cognito应用客户端的ID,不能包含多余字符
    • redirect_uri必须是该应用客户端已在Cognito控制台配置的精确重定向URI(包括HTTPS协议、域名和路径,区分大小写)
    • 所有参数必须完成标准URL编码,比如&转%26、=转%3D、冒号转%3A等
  • 测试简化版Relay State:先仅保留identity_provider和client_id两个参数,例如:
    identity_provider%3D{IdP名称}%26client_id%3D{客户端ID}
    
    确认是否能正常跳转后,再逐步添加其他参数定位问题点。

2. 确认受众URI(Audience URI)的正确性

针对IdP发起的SAML登录场景,Cognito要求受众URI必须为urn:amazon:cognito:sp:{UserPoolId}(替换为你的用户池ID,格式示例:urn:amazon:cognito:sp:us-east-1_XXXXXXXXX),不要使用用户池ARN格式,该格式仅适用于部分SP发起的场景。

3. 检查SAML断言的属性映射与格式

  • 确保Okta发送的SAML断言中包含Cognito要求的必要属性(如email),且属性名称与Cognito用户池的属性名称完全匹配(区分大小写)
  • 验证SAML断言的签名:确认Okta配置的证书已正确上传到Cognito的SAML身份提供商设置中,且证书未过期

4. 验证Cognito应用客户端的配置

  • 确认该应用客户端已关联对应的SAML身份提供商(在Cognito控制台的应用客户端“身份提供商”选项中勾选)
  • 检查应用客户端的“启用IdP发起的登录”选项是否开启(新版Cognito需手动开启该配置)

5. 利用浏览器工具捕获完整请求

使用浏览器开发者工具(Network面板)捕获完整的SAML请求和响应:

  1. 开启浏览器开发者工具并切换到Network面板
  2. 点击Okta控制台的应用发起登录
  3. 找到向Cognito /saml2/idpresponse 发送的POST请求,查看Request Payload中的SAMLResponse和RelayState参数
  4. 将SAMLResponse进行Base64解码,检查断言中的Audience、NameID等字段是否符合要求

内容的提问来源于stack exchange,提问作者Amadeo de la Peña

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:27:15