[英]Azure Web App + Node.js + Azure AD = Error 431
I created a Node.js based web application, running in an Azure Web App, that I wanted to put behind an Azure Active Directory authentication. 激活“App Service Authentication”后,登錄過程正常,但是返回我的應用程序后,它只返回 HTTP 431 “Request Header Fields Too Large”。
為了驗證它不是我的應用程序,我檢查了 Azure web 應用程序示例 Node.js 甚至在激活 AAD 時返回 431。
重現步驟:
結果:當使用瀏覽器打開 web 應用程序 URL 時,它將顯示登錄過程,在此過程之后一切似乎都正常工作,並且 AAD 返回到應用程序,但是此時它返回 Z293C9EA2416FF99875DC6F6F6
進一步測試:
有任何想法嗎? 我錯過了什么嗎?
這是一個已知問題,因為最近版本的節點使用 8KB 的硬上限作為標頭存在限制。 EasyAuth 向請求添加了一些非常大的標頭,這可能導致節點容器拒絕中間件容器發出的 400 請求。在此處閱讀更多相關信息:這可以通過將應用程序設置 WEBSITE_AUTH_DISABLE_IDENTITY_FLOW 設置為 true 來緩解。 這將刪除我們添加到請求中的最大標頭之一。 這個 header 一般只被 .NET Framework 和 Azure Functions 應用程序使用,所以這個設置應該是安全的。
如果問題仍然存在,可以嘗試使用 NodeJS 12 版本或增加 header 大小參數:node server.js --max-http-header-size 81000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.