【发布时间】:2021-01-17 17:32:56
【问题描述】:
目前不知道该转向何处。我们正处于开发应用程序的最后阶段,该应用程序托管在基于 Linux 的 NodeJS v12 Azure Web 应用程序中。
我们的应用程序连接到 Azure AD B2C 以存储和管理用户帐户。 AD B2C 完全使用自定义策略进行配置。
当我们尝试通过 B2C 更改帐户密码时,我们成功地进行了密码更改,但 B2C 尝试将我们重定向回我们的网站,但失败并显示 431。
Referer 非常长,看起来像这样:https://%ADTenant%.b2clogin.com/%ADTenant%.onmicrosoft.com/%CustomPolicyName%/api/SelfAsserted/confirmed?csrf_token=%Token%&tk=StateProperties=%Token%&p=%CustomPolicyName%?diags=%ListOfEncodedClaimsAndControlInformation%
经过编码,整个内容的长度约为 1,800-1,900 个字符。我们的 cookie 中还有大约 1,000-1,100 个字符,目标 URL 的长度约为 1,300 个字符,总共有大约 4.1-4.3k 个字符。
如果我们重新加载页面,referer 将变为空,因此调用正常。 奇怪的是,在隐身模式下,问题不会出现。 Referer 为空,并且工作正常。
起初我们以为是 NodeJS 最大 8KB 请求标头大小,但我们的请求标头在此之下。它在本地工作;仅当应用位于 Azure Web 应用中时才会中断,因此更难排除故障。
我们甚至将WEBSITE_AUTH_DISABLE_IDENTITY_FLOW=true 添加到我们的网络应用程序中:不走运
如果有人有想法,那就太棒了,因为我们在这里的想法很有限:( 谢谢!
【问题讨论】:
标签: node.js azure azure-web-app-service azure-ad-b2c http-status-code-403