2011-03-23 34 views
0

主辦我有一個asp.net網站,在IIS 7.5與ASP.NET面臨的問題在IIS和Windows身份驗證

該網站有使用Windows身份驗證託管。用戶被添加到AD組。 AD用戶組完全控制網站發佈的Web文件夾。 Server/IIS_IUSRS也可以完全控制Web文件夾。

網站需要使用的數據存儲在另一臺服務器上。 AD組完全控制存儲數據的文件夾。 我正在使用經典模式,因爲Integrated可以打破它。

什麼應該是網站身份驗證和APP池設置?

回答

1

就我個人而言,我已經成爲將應用程序池標識設置爲AD服務帳戶,然後允許應用程序使用這些憑據訪問數據庫和其他資源的粉絲。無需傳遞連接字符串上的憑據或嘗試模擬用戶(編輯:應注意,這適用於使用Windows集成安全性的資源)。也不需要試圖讓用戶直接訪問數據存儲區或其他資源,只需要應用程序憑證即可訪問。最初設置起來有點麻煩,但從長遠來看更容易管理。

下面是我發送給我們的服務器組的清單,只要我要求他們爲我設置一個新站點:(注意這是基於Win Serv2003和IIS 6,在新版本中可能會有所不同)。

  • 建立一個單獨的應用程序池的 應用
  • 配置應用程序池運行爲 服務帳戶
  • 服務帳戶添加到 IIS_WPG組的服務器上
  • 確保IIS_WPG組具有讀取,讀取 執行&,列出文件夾的網站 目錄,讀取和列出文件夾目錄 到C 目錄權限:\ WINDOWS \ TEMP文件夾 (或同等學歷)。
  • 授予用戶權限「調整內存 配額的過程」,「替換 進程級令牌」和「登錄爲 服務」服務帳戶
+0

感謝您的回覆。這是否意味着任何輸入網站URL的人都能夠自動登錄?我只希望屬於某個用戶組的用戶訪問該網站。 – InfoLearner 2011-03-23 20:51:04

+0

您仍然可以通過任何適當的方式確保訪問網站。您不必擔心試圖讓用戶訪問後端資源。在我工作的大多數應用程序中,我們都有一個授權管理系統。該應用程序將Windows用戶標識和其他一些信息傳遞給安全插件,並以每個用戶允許的內容做出響應。類似的事情可以使用安全組來完成。 – Rozwel 2011-03-24 11:33:06

1

別把IIS autorization和ASP.NET autorization:

IIS autorization

  • IP/DNS地址限制
  • Web權限(讀,寫,腳本資源訪問...)
  • NTFS權限(非ASP.NET ISAPI擴展只:熱媒,.JPG ...)

ASP。NET autorization

  • URL授權(<authorization>元素)
  • 文件授權(ASP.NET ISAPI擴展只:的.aspx,...名爲.ascx)
  • 主要權限(需求)
  • .NET角色

限制訪問您的網站:

  • 取消選中匿名訪問
  • 配置NTFS權限

提供對數據的訪問文件夾,幾個解決方案:

  • 使用服務帳戶爲您的應用程序池,允許它的文件夾和管理訪問權限控制在您的應用程序中
  • 在訪問數據文件夾時使用默認的IIS 7 ASP.NET帳戶和impersonate本地用戶在您的代碼中

    System.Security.Principal.WindowsImpersonationContext impersonationContext; ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

    //在此處輸入您的代碼,該代碼在 用戶的 安全上下文中運行。

    impersonationContext.Undo();

  • 激活全球範圍內的impersonation<identity impersonate="true"/>);不喜歡這一個

+0

(((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();)我必須在Global.asax或每個方法中只執行一次嗎?另外你爲什麼不喜歡在web.config模擬? – InfoLearner 2011-03-24 00:16:58

+0

冒充整個站點可能會帶來自動化/委派/安全問題,同時僞裝一段代碼會隔離特定的安全需求和行爲。 – JoeBilly 2011-03-24 17:14:14