Dir*_*gür 9 azure node.js azure-active-directory azure-web-app-service azure-webapps
我创建了一个基于 Node.js 的 Web 应用程序,在 Azure Web 应用程序中运行,我想将其置于 Azure Active Directory 身份验证之后。激活“应用服务身份验证”后,登录过程正常工作,但是在返回我的应用程序时,它只返回 HTTP 431“请求标头字段太大”。
为了验证它不是我的应用程序,我检查了 Node.js 的 Azure Web 应用程序示例,即使在激活 AAD 时也会返回 431。
重现步骤:
结果:当使用浏览器打开 Web 应用程序 URL 时,它将显示登录过程,在此过程之后一切似乎都正常并且 AAD 返回到应用程序,但此时它返回 HTTP 431。
进一步测试:
有任何想法吗?我错过了什么吗?
小智 11
这是一个已知问题,因为较新版本的节点存在限制,这些节点使用 8KB 的硬上限作为标头。EasyAuth 向请求添加了一些非常大的标头,这会导致节点容器以 400 拒绝中间件容器发出的请求。在此处阅读更多相关信息:这可以通过将应用程序设置 WEBSITE_AUTH_DISABLE_IDENTITY_FLOW 设置为 true 来缓解。这将删除我们添加到请求中的最大标头之一。此标头通常仅由 .NET Framework 和 Azure Functions 应用程序使用,因此此设置应该是安全的。
如果问题仍然存在,您可以尝试使用NodeJS 12版本或增加header size参数:node server.js --max-http-header-size 81000
| 归档时间: |
|
| 查看次数: |
2903 次 |
| 最近记录: |