Iis

“應用程序池標識”對應用程序池起什麼作用?

  • February 15, 2022

在談到 IIS 7.5 安全性時,AFAIK:

App Pool Identity決定了我的 Web 應用程序以的身份執行。

身份驗證方法決定客戶端的身份驗證身份。

我有一個這樣配置的虛擬文件夾:

  • 我使用匿名身份驗證,期望所有客戶端都應該作為IUSR進行身份驗證。
  • 我讓 IUSR 完全控制該文件夾。
  • 我的 App Pool Identity 設置為 XXX 帳戶,該帳戶對該文件夾沒有任何權限。(我故意設置這個)

但事實證明我無法瀏覽該文件夾中的文件。一旦我授予 XXX 帳戶訪問該文件夾的權限,一切順利。

那麼App Pool Identity在匿名認證中起到什麼作用呢?完全出乎意料的是,我必須授予 App Pool Identity 帳戶訪問該文件夾的權限。我認為匿名身份驗證就足夠了嗎?

謝謝。

這裡有很多重載的術語,以及 IIS 7 和 7.5 之間的變化。

應用程序池身份與應用程序池帳戶

讓我們從應用程序池身份(小寫-i-identity,我稱之為應用程序池帳戶以避免歧義)開始:

我告訴它的方式,應用程序池帳戶是用於啟動應用程序池的帳戶,以及應用程序池在不冒充其他任何人時所採用的身份。

因此,無論您為應用程序池提供什麼身份,它都需要能夠讀取內容文件夾中的文件:特別是{但不限於}任何web.config 文件(構成 IIS 配置的一部分,並控制應用程序池將要做)。

如果它無法訪問文件夾,它會假設其中可能有一個重要的(改變遊戲規則的)web.config 文件,並顯示錯誤。因此,應用程序池帳戶需要對所有內容文件夾的讀取權限。

應用程序池身份

為什麼要將 App Pool Account(應用程序池的身份)與 App Pool Identity 區分開來?因為使用特殊大寫字母的ApplicationPoolIdentity是一種新的帳戶類型- 託管服務帳戶 - 在 IIS 7.5 / Windows 2008 R2 中引入並設為預設值,並且在 Windows 2008 SP2 中也可用(但不是預設值)。

請參閱IIS.Net 上的應用程序池標識

當您使用 GUI 在 2008 R2 或更高版本下創建網站時:

  • 將創建一個應用程序池來託管該網站,並且
  • 帳戶類型將是ApplicationPoolIdentity,而不是 Network Service(2008 預設)、Local Service 或 Local System
  • 一個虛擬身份,IIS AppPools\AppPoolName 將可用作本地電腦上的安全主體

對於 2008 RTM,預設的應用程序池帳戶是網路服務加上唯一的應用程序池標識/唯一標識符;新的 R2/SP2 AppPoolIdentity帳戶類型是一個**類似網路服務的帳戶(即在機外連接時是電腦),但防止在同一個盒子內模擬另一個應用程序池。

回到原來的問題:

  • 應用程序池帳戶定義了的應用程序在不冒充其他任何人時執行的對象
  • 身份驗證方法描述您將如何對客戶端進行身份驗證(以模擬它們)
  • Anonymous 使用者帳戶定義了在模擬使用者請求未經過身份驗證的請求時您要執行的人——IUSR 就是這樣的使用者。

順便說一句,在 IIS 7.5+ 中,您可以將匿名使用者帳戶設置為應用程序池標識(匿名身份驗證方法的屬性),這樣可以更直接地隔離和保護給定網站的內容。

使用 IIS AppPool\YourSiteName 為名稱格式設置權限(請參閱這篇文章)。

引用自:https://serverfault.com/questions/247509