Windows-Server-2008
IIS 7.5 Windows 身份驗證無法在外部工作
我正在嘗試連接到我們創建的 asp.net 網站。它使用 Windows 身份驗證,並拒絕未經身份驗證的使用者訪問
網路配置:
<authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization>
該網站位於我們的 DMZ 中。伺服器已連接到域。當我嘗試從我們的內部網路連接到該站點時,它可以正常工作。我得到一個需要身份驗證的彈出框,填寫我的憑據,然後我可以進入該站點。
當我從外部網路連接時,它不起作用。瀏覽器正在連接到該站點,但從未顯示彈出框。最終我得到一個The connection was reset
顯然防火牆將我的請求視為漏洞並阻止它。此消息可以在防火牆的網路包中找到:
401 - Unauthorized: Access is denied due to invalid credentials.
這與我從內部位置連接到站點並點擊取消或填寫錯誤憑據時遇到的錯誤相同。
我已經嘗試過了,但沒有運氣:
- 將 NTLM 移至我的提供商的頂部
- 使用 Kerberos 身份驗證
- 檢查 IIS 中的模組:WindowsAuthentication 和 WindowsAuthenticationModule 都在那裡
- 將 DisableStrictNameChecking 和 DisableLoopbackCheck 添加到系統資料庫
- 允許匿名身份驗證(IIS 級別)
- 允許基本身份驗證(IIS 級別)
- Allow all users with windows authentication(在web.config中):基本上是刪除授權節點。這使用匿名並且有效。該站點可以訪問,但使用者未通過身份驗證,並且看不到他的個人報告(因此無法使用)
- 更改應用程序池使用者
- 將 arp 文件夾的訪問權限授予 IUSR
為什麼我去網站有兩個401狀態?這會導致防火牆阻止流量,因此永遠不會顯示“需要身份驗證”彈出視窗。
因為我們使用 NTLM,所以使用 401 數據包進行多次往返。我們的防火牆將其視為暴力攻擊並阻止了它。最後,我們通過配置防火牆並在防火牆將其視為漏洞之前允許多個 401 數據包來修復它。我們的系統設置方式不能使用 Kerberos。它只發送一個 401 包並且不會被我們的防火牆阻止(在他的原始配置中)
感謝@TristanK 的答案。
這裡有同樣的問題,但我認為我很幸運並找到了解決方案。這裡看起來也像防火牆問題,但是禁用它時沒有任何變化。來自本地主機的訪問工作正常,但不是來自同一網路或網際網路。我嘗試更改每個值都沒有運氣,但最後我嘗試編輯錯誤消息的功能設置(我的伺服器有自己的錯誤消息),它似乎解決了問題。我有詳細的本地錯誤和遠端自定義錯誤。更改詳細錯誤後,登錄彈出視窗工作正常!!!:)