Azure AD B2C作为SAML IdP-RelayState太大



根据这些说明,我们正在尝试使用AWS Cognito用户池作为SP,使用Azure AD B2C作为IdP。不幸的是,我们还没有取得任何成功。SAML请求失败。来自Azure B2C的SAML响应具有以下状态消息,表明来自AWS Cognito的RelayState内容太大(最大>1000字节(:

<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester" />
<samlp:StatusMessage>The SAML RelayState content is greater the 1000 bytes.</samlp:StatusMessage>
<IsPolicySpecificError>false</IsPolicySpecificError>
</samlp:Status>

在解码RelayState(2xbase64(后,我们看到了以下内容(一些敏感名称更改为abc(:

{"userPoolId":"us-east-1_Vu6ccYQri","providerName":"ABCD-B2C-TEST","clientId":"s1ldupjg52rk4vrrumab75nq0","redirectURI":"abcdefghij://abcdefghij.abc.com/authmain","responseType":"code","providerType":"SAML","scopes":["aws.cognito.signin.user.admin","email","openid","phone","profile"],"state":null,"codeChallenge":null,"codeChallengeMethod":null,"nonce":"DDKMFvrQXZl1ML2Fg9pPTRVamRmx06_nWNSNV5wDsFp6-Nl4OcM2FixoNg5FHoIJ7LlT4tByiSE7-2NqeFhLhx_n7y-m_e6BQnBYFWwYdQr7LUMUj9HJDMLds1rkxP4ttwXPFMv4Yq5gpRnSkoW0jeZ1hkMIvqGZyNo8X82PZkA","serverHostPort":"abcdefghijklmnopqrs.auth.us-east-1.amazoncognito.com","creationTimeSeconds":1583530949,"session":null,"userAttributes":null,"isStateForLinkingSession":false}

我们试图用我们能控制的一切来缩小大小,但编码后我们能得到的最小值仍然太大。密码随机数是最大的部分,但我们无法控制。

我们还尝试调整RP文件中的RequestContextMaximumLengthInBytes,但到目前为止没有效果。

关于如何处理这个问题有什么建议吗?

这是通过增加依赖方(RP(文件中的RequestContextMaximumLengthInBytes来解决的。尽管值为2000仍然会导致失败,但4000足够大,可以消除错误。

<Metadata>
<Item Key="RequestContextMaximumLengthInBytes">4000</Item>
</Metadata>

最新更新