2012-11-22 49 views
2

這是後Reporting Services Authentication advice sought的擴展,因爲我無法在該線程上提交冗長的帖子(apologies admin)。使用Reporting Services實施Windows身份驗證

基本上,我配置了本地安裝的報告服務以使用Windows身份驗證(最終目的是在網絡上實現此身份驗證)。

我的當前設置:

IIS(5.1):我已經創建了一個名爲 「的ReportServer」 使用ASP.NET V2.0.50727的應用程序。此應用程序的安全性設置爲「集成Windows身份驗證」。我沒有選中「匿名訪問」複選框。我是否正確地認爲這會阻止匿名訪問IIS(即IIS中的ReportServer應用程序?)。因此,用戶將被提示登錄詳細信息,這反過來將針對Windows/AD進行驗證?

報告:我創建了一個共享數據源在數據庫駐留在不同的服務器上,並配置數據源使用「Windows身份驗證」(不是SQL Server身份驗證),我可以成功地測試連接。通過在BIDS中運行報告,我也可以成功創建並測試一個簡單的報告。

當我部署報告時,我沒有提示登錄(這很好)。我相信這是由於IIS中的應用程序目錄配置爲使用正在使用已登錄的PC用戶帳戶(正確?)的「集成Windows身份驗證」。

每當我負荷報告通過瀏覽器服務,我在正確的提示輸入我的Windows域用戶名和密碼,但只有當我運行從我的本地PC的報告。一旦通過身份驗證,我就可以看到適用於我的所有報告。如果一個同事試圖連接到我的電腦上的報告實例,他不需要登錄即可進入!爲什麼是這樣?!

但是,當我通過瀏覽器運行已部署的報告時,我收到錯誤「報告處理過程中出現錯誤,無法創建與數據源的連接,用戶登錄失敗(空)'原因:不是與受信任的SQL Server連接關聯「。如果我更改數據源以使用SQL Server身份驗證並指定SQL Server中存在的登錄名,則可以在瀏覽器中成功運行該報表。

理想的解決方案,我想實現如下:

  1. 用戶加載報表服務器URL在瀏覽器中。
  2. 提示用戶輸入他們的Windows/AD憑據(包括域前綴)。
  3. 在幕後,用戶被允許進入報告服務器。
  4. 用戶將只能看到他/她被允許看到的報告文件夾和報告。這將通過將允許的AD組/用戶添加到報告文件夾和報告(我知道如何執行此操作)來控制。我不希望維護單獨的SQL Server用戶帳戶。

我覺得好像我差不多在那裏,即與報表服務器的連接在允許他們訪問報表服務器之前提示用戶輸入其Windows憑據。

請能有人告訴我:

一)爲什麼我會被提示輸入我的Windows系統中,當我通過瀏覽器訪問本地的報告,但不同的Windows用戶沒有當系統提示輸入日誌他們通過瀏覽器窗口遠程訪問我的報告服務器? b)如果應該實施更好的整體解決方案,請您建議或指向我相關的資源。

c)有沒有什麼需要警惕我目前的設置可能會導致未來的問題。

非常感謝提前。

JFB

回答

1

原因遇到此(即用戶= NULL)是因爲你問的報表服務器來驗證Kerberos憑據。有一個廣泛的帖子here,但問題的關鍵是您要求報表服務器驗證Windows憑據,但Active Directory不相信您的計算機將這些憑據一併傳遞。如果您的代表團設置正確,它將滿足您的要求而無需登錄提示,並且您可以通過第4點來控制可視性。

2

有2個安全問題處理

  1. 身份驗證的用戶訪問報告
  2. 身份驗證的數據源(S)訪問數據庫(一個或多個)

通常情況下,我們發現我們想要在第一點將未經授權的用戶踢出去,然後(假設用戶已被授權),爲數據源提供一組靜態的連接憑證 - 這具有諸如允許連接池和保存我們的DBA的一大筆headac他計算哪些用戶可以訪問哪些數據庫,並運行哪些報告SPROC等,因爲他們只需要爲「報告數據源用戶」進行配置。

點#1由添加到報告/文件夾的組/用戶控制。

第2點可以通過爲您的數據源設置域憑證,然後爲需要訪問的各種數據庫分配此用戶適當的讀取/執行訪問來完成。

可能有一點你可能會丟失的是,你的數據源憑證作爲需要'本地登錄'權限運行才能工作?是

FWIW我們的數據源設置如下:

  • 憑據安全地存儲在報表服務器
  • 檢查:使用連接到數據源時,作爲Windows憑據

的賬號正在運行您的

相關問題