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
EXPERTE
gefragt vor 6 Monaten14 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen