2011-11-02 186 views
0

我有一個ASP.NET Web應用程序,它使用對SSRS Web服務ReportService2005.asmx和ReportExecution2005.asmx的調用。SSRS Web服務安全

所使用的技術是ASP.NET 3.5,Visual Studio 2008和SQL Server 2008 R2的

用戶登錄到(因爲我使用的是使用這個,而不是ReportService2010一個代碼庫我使用ReportService2005)該系統使用表單身份驗證。用戶然後導航到報告頁面。用戶可以屬於任意數量的報告組(每個組可以包含任意數量的報告)。報告組及其相關報告以及分配給報告組的用戶由Web應用程序內的頁面控制,並存儲在Web應用程序數據庫(不是SSRS數據庫)中的一系列表中。

當前使用服務器的默認憑據可以訪問ReportService2005.asmx和ReportExecution2005.asmx。這是安全的嗎?服務器上的所有報告都可以通過這一個默認憑證訪問。對用戶可以看到的報告的唯一限制將由前端應用程序強制執行,該應用程序可能會被使用例如黑客入侵。 JavaScript的?

我想要的是一種方法,我可以取消Web應用程序數據庫中的一系列報告/用戶/組表,並使用SSRS模式。例如:

用戶A(公司A的員工)屬於財務報告組和營銷報告組。 「財務」組包含「財務報告1」和「財務報告2」。營銷組包含市場營銷報告1.

上述報告將放置在報告服務器上的財務和營銷文件夾中(使用報告管理器)。

然後,我可以在報表服務器上創建一個Windows用戶(我們稱之爲MarketingFinance),併爲該用戶在Marketing和Finance文件夾上提供適當的權限。用戶A然後必須在他/她的.net membershipprovider配置文件中具有某種標誌以鏈接到MarketingFinance用戶。

這個問題雖然是我想象一個新的Windows用戶不得不在創建/修改自定義報告組時創建報表服務器。使用上面的例子說一個銷售報告組被創建並且用戶B被添加到它。現在,報表服務器上必須有一個Windows用戶(銷售),並且具有適當的權限才能訪問Sales文件夾。此外,Web應用程序的多個客戶端也希望他們自己的銷售/營銷等組可能會將Windows用戶數量增加到數千人!

我是SSRS的新手,所以可能會看到這種錯誤的方式 - 我可以使用角色來簡化這個問題嗎?

此外,各公司的報告可能基本相同(我的公司是指應用程序的客戶端),但每家公司可能都希望將報告設置在不同的文件夾中。即公司A財務文件夾中有報告A,報告B和報告C,但公司B財務文件夾中只有報告A.據推測報告鏈接將阻止我必須在兩個文件夾中有兩份報告A的物理副本?

回答

0

你已經將幾個不同的問題合併爲一個,但我會嘗試解決「將使用多個不同帳戶設置SSRS訪問權限是否會提高我的安全性?」的基本問題。

...這是安全的嗎?

安全不是一個二進制的東西:這個問題應該改寫爲「這安全嗎?」答案取決於您持有的數據,應用程序的暴露程度以及其他考慮因素。 (在公司內部的應用程序的銷售數字應該得到不同的答案比發佈到互聯網大公司的[R & d調查結果。)

上的報告,用戶可以看到的唯一限制將通過前端應用程序強制執行,可能會被使用例如黑客入侵JavaScript的?

似乎將Reporting Services用戶分配到不同的帳戶對解決此問題並沒有多大作用。如果某人目前可以訪問其他用戶的頁面,那麼更改SSRS憑證的更改是什麼?如果你依靠客戶端Javascript來提供他們需要訪問的SSRS報告,那麼你應該在服務器端檢查它,以確保他們沒有請求不適當的東西。

我將專注於確保SSRS的服務器不是從互聯網直接訪問,然後我會在保護您的應用程序。如果您有理由相信您的網站是通過改變您的Javascript而變得易受攻擊的,那麼請解決該問題。

把到SSRS用戶訪問到這樣的發射井並沒有多大意義,我爲安全起見,除非您的前端應用具有非常獨立的孤島本身。它可能使事情易於管理並避免錯誤,但我沒有看到更多的額外安全性。

(另外,你提出的解決方案將增加地方存儲更多的密碼,而那些平時值得一點點額外的保護,所以你可能會建立一個更大的問題。)

這是一個怪胎的觀點;你的里程可能會變化我的兩美分...

+0

感謝您的回覆。 Javascript安全問題是一個小問題 - 真的只是一個想法。這些報告都有一個數字ID,我認爲有可能欺騙一個ID到服務器,因爲有一個報告服務器用戶可以訪問所有報告,這可能會危及安全。如果每個Web用戶只能訪問報告的一個子集,並且此Web用戶與報告服務器用戶綁定,那麼即使通過了僞造的ID,系統也會更安全(假設報告服務器用戶憑證很難僞造就像他們被綁定到網絡用戶一樣)。 –

+0

我的真實觀點是,如果SSRS有一個建立報告組和相關權限的系統,我會更好地使用這個系統而不是滾動自己的系統嗎?我認爲使用我自己的方式可能會更好地減少報告服務器用戶的激增,但由於我是新手,我可能會以錯誤的方式來看待這個問題。所有評論贊賞。 –

+0

還有其他意見嗎?我將結束這個問題,並在幾天內接受傑米F的回答。 –