Cognito 中无效的relayState

0

【以下的问题经过翻译处理】 有文档描述在Cognito中一个有效的relayState应该是什么格式吗?我无法正确格式化一个Cognito会接受的relayState,并且没有找到任何相关的文档。在其他地方指定的标准RelayState格式(如https://jackstromberg.com/adfs-relay-state-generator/)会导致Cognito抛出无效的relayState错误。

目前我是使用ADFS作为SAML身份提供者并启用注销流程。然后我通过我的应用程序登录,并转到ADFS屏幕以注销。最开始会出现缺少relayState的问题,但我通过在我的注销路径中添加一个RelayState查询参数来解决了这个问题。它能够识别我添加了该参数,但显然无法解析它(因此抛出无效的relayState)。

profile picture
전문가
질문됨 6달 전13회 조회
1개 답변
0

【以下的回答经过翻译处理】 “有文档描述在Cognito中一个有效的relayState应该是什么格式吗?“

  • 不,我们没有发布关于此格式的文档,但可以从网络请求中解码。Cognito的relayState由一个附加了签名的用户池详细信息的JSON对象组成。

“我无法正确格式化一个Cognito会接受的relayState,并且没有找到任何相关的文档。在其他地方指定的标准RelayState格式(如https://jackstromberg.com/adfs-relay-state-generator/)会导致Cognito抛出无效的relayState错误。”

  • 这是预期的结果。即使可以按照规定格式创建有效的JSON relayState,签名部分也无法生成。因此,简而言之,您无法生成relayState并使用IdP发起的SSO。

“目前我是使用ADFS作为SAML身份提供者并启用注销流程。然后我通过我的应用程序登录,并转到ADFS屏幕以注销。最开始会出现缺少relayState的问题,但我通过在我的注销路径中添加一个RelayState查询参数来解决了这个问题。它能够识别我添加了该参数,但显然无法解析它(因此抛出无效的relayState)。“

  • 注销请求需要从Cognito生成。在用户池中创建SAML提供者时,如果希望在从Amazon Cognito注销时将用户从SAML IdP注销,则选择“启用IdP注销流程”。启用此流程时,当调用LOGOUT端点时,会向SAML IdP发送一个带有有效relay state的签名注销请求。

此外,我们已将“由IdP发起的SSO”加入到功能需求列表中,但我们无法提供发布此功能的预计时间。

profile picture
전문가
답변함 6달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인