所以這裏的恐怖故事有點背景的:暴露於外界網絡訪問虛擬機上運行權限問題,報表生成器2.0
- 贏2003 SP2 64位。
- SQL Server 2008標準SP2 64位,併爲本機模式(即非共享點模式)安裝了Reporting Services(RS)。
- IIS 6 .NET 3.5網站應用程序,用於使用來自RS的Web服務。該網站已被設置爲使用Windows身份驗證,沒有別的。
- 爲了節省寫入自定義身份驗證,因爲我不需要它進行演示,所以我在Win 2003中設置了一個本地帳戶,即servername \ myDemoUser,它有效地允許僞造Windows身份驗證。
- Default.aspx列出RS上的文件夾和每個文件夾中的報告。它還具有指向服務器上的Report Builder 2的鏈接。
- 的rsreportserver.config已經改變,使得只有<AuthenticationType>是<RSWindowsNTLM>因爲<RSWindowsNegoiate>不能工作,因爲它是在互聯網上,用戶將不能在同一網絡(因此本地帳戶myDemoUser)上。
- 該網站應用程序的網址格式爲:http://mysite.mydomain.co.uk/,其上的鏈接報告生成器格式爲:http://mysite.mydomain.co.uk/services/reportbuilder/reportbuilder_2_0_0_0.application,在這種情況下,RS已配置爲使Web服務虛擬目錄爲「服務」。
- 的網站應用程序的Web.config已被設置爲<身份冒充=「真/ >爲<爲訪問Web服務RS的ASPX頁面位置>。我甚至增加了一個<位置路徑=」服務/報表製作工具」 >具有同樣的事情,也允許匿名用戶。
所以畢竟上面我去從一臺機器的網站,是不是網絡,我得到IE8提示輸入用戶名/密碼,我在輸入servername \ myDemoUser和正確的密碼。主頁顯示並正確顯示來自RS的文件夾和報告的列表。但是如果我點擊RS報告生成器鏈接我得到彈出窗口說它正在執行clickonce verfication的東西,但幾秒鐘後,它顯示簡單的消息框說有認證錯誤。詳細信息按鈕隨後會顯示一個帶有一堆堆棧跟蹤內容的文本文件,其中最終表明服務器在訪問上面提到的.application文件時返回了401。
我打開了Win 2003虛擬機上登錄失敗審計,我可以看到,當clickonce失敗時,它試圖使用我登錄到外部(到我的網絡)計算機上的本地計算機帳戶而不是憑據測試時,我在該機器上輸入了瀏覽器。
許多谷歌搜索和授予網絡服務的權限,大家等...在後來涉及的各種文件夾上,沒有任何報告生成器位不會通過clickonce安裝,由於權限或不正確的使用。
我正在研究可能會改變RS中的某些內容,嘗試將權限授予報告生成器以匿名,但此時我非常悲觀,我實際上會發現任何內容。令人討厭的是這是一個測試,並不代表最終的事情(我們將在RS中使用自定義身份驗證),但不幸的是我必須這樣做,8(。
任何想法將不勝感激。