IIS 中的 IUSR 和 IWAM 帳戶是什麼?
我正在尋找 IIS 使用的 IUSR 和 IWAM 帳戶的一個很好的解釋,以幫助我更好地配置我們的託管環境:
- 他們為什麼在那裡?
- 他們之間有什麼區別?
- 這些名字是否代表有意義的東西?
- 我應該做出任何最佳實踐更改嗎?
- IIS 還為我提供了將應用程序池作為網路服務、本地服務或本地系統執行的選項。我是不是該?
- 我的網路伺服器是域的一部分,這會如何改變?
在將多個站點部署到伺服器時,創建自己的這些帳戶版本似乎很常見,這會引發一些額外的問題:
- 我什麼時候可以創建自己的 IUSR 和 IWAM 帳戶?
- 我應該如何創建這些額外的帳戶,以便他們擁有正確的權限?
我同時使用 IIS 6 和 IIS 7,大部分都是預設配置。
IUSR 和 IWAM 可以追溯到 IIS 的早期,當時您單獨安裝它(而不是作為作業系統組件)。預設情況下,如果網站允許匿名身份驗證,則在作業系統權限方面使用 IUSR 帳戶。這可以從預設值更改。有一些安全建議至少要重命名帳戶,因此它不是“已知”帳戶,就像有建議重命名伺服器上的管理員帳戶一樣。您可以在 MSDN 了解有關IUSR 和身份驗證的更多資訊。
IWAM 專為任何程序外應用程序而設計,僅當您處於 IIS 5.0 隔離模式時才在 IIS 6.0 中使用。您通常在 COM/DCOM 對像中看到它。
對於應用程序池標識,預設設置為作為網路服務執行。您不應作為本地系統執行,因為該帳戶的權限高於管理員的權限。因此,這基本上將您留給網路服務、本地服務或這兩個以外的本地/域帳戶。
至於怎麼做,就看情況了。將其保留為網路服務的一個優點是這是伺服器上的有限權限帳戶。但是,當它通過網路訪問資源時,它會顯示為 Domain\ComputerName$,這意味著您可以分配允許網路服務帳戶訪問資源的權限,例如在不同機器上執行的 SQL Server。此外,由於它顯示為電腦帳戶,如果啟用 Kerberos 身份驗證,則如果您通過伺服器名稱訪問網站,則 SPN 已經存在。
如果您希望特定帳戶訪問網路資源(例如訪問基於 Web 的應用程序的 SQL Server 的服務帳戶),您會考慮將應用程序池更改為特定 Windows 域帳戶的情況。ASP.NET 中還有其他選項可以在不更改應用程序池標識的情況下執行此操作,因此不再嚴格要求這樣做。您考慮使用域使用者帳戶的另一個原因是您正在執行 Kerberos 身份驗證,並且您有多個 Web 伺服器為 Web 應用程序提供服務。一個很好的例子是,如果您有兩個或多個 Web 伺服器為 SQL Server Reporting Services 提供服務。前端可能會指向一個通用的 url,例如reports.mydomain.com 或reporting.mydomain.com。在這種情況下,SPN 只能應用於 AD 中的一個帳戶。如果您在每台伺服器上的網路服務下執行應用程序池,那將無法正常工作,因為當它們離開伺服器時,它們會顯示為 Domain\ComputerName$,這意味著您擁有的帳戶數量與提供服務的伺服器數量一樣多應用程序。解決方案是創建一個域帳戶,將所有伺服器上的應用程序池標識設置為相同的域使用者帳戶並創建一個 SPN,從而允許 Kerberos 身份驗證。對於像 SSRS 這樣的應用程序,您可能希望將使用者憑據傳遞到後端數據庫伺服器,那麼 Kerberos 身份驗證是必須的,因為您將不得不配置 Kerberos 委派。d 擁有與為應用程序提供服務的伺服器一樣多的帳戶。解決方案是創建一個域帳戶,將所有伺服器上的應用程序池標識設置為相同的域使用者帳戶並創建一個 SPN,從而允許 Kerberos 身份驗證。對於像 SSRS 這樣的應用程序,您可能希望將使用者憑據傳遞到後端數據庫伺服器,那麼 Kerberos 身份驗證是必須的,因為您將不得不配置 Kerberos 委派。d 擁有與為應用程序提供服務的伺服器一樣多的帳戶。解決方案是創建一個域帳戶,將所有伺服器上的應用程序池標識設置為相同的域使用者帳戶並創建一個 SPN,從而允許 Kerberos 身份驗證。對於像 SSRS 這樣的應用程序,您可能希望將使用者憑據傳遞到後端數據庫伺服器,那麼 Kerberos 身份驗證是必須的,因為您將不得不配置 Kerberos 委派。
我知道有很多東西需要考慮,但簡短的回答是,除了本地系統,這取決於。