IIS Upload Files Permissions

2022-02-09

實驗 ASP.NET 上傳檔案時,資料夾需要提供 NTFS 權限的對象。實驗的授權對象包括了 Application Pool Identity、Domain Users、Authenticated Users、IIS_IUSRS 以及 Current Auth Users 等等。

最小權限的探究,實驗過才知道 😎

logo

說明

使用 ASP.NET MVC 5 框架,搭配 IIS 使用 Windows 驗證,集區的執行身分為 Application Pool Indentity,上傳所使用的 Sample Code

TL;DR;關於上傳檔案,想要保持最小權限嗎?如果集區的識別是以 Application Pool Identity 就給它要上傳檔案的資料夾修改及寫入的權限,不要給 IIS_IUSRS、不要給 Authenticated Users 更不要給 Everyone。

實驗結果

上傳的資料夾逐一測試給予 Write 及 Modify 權限,測試是否能夠上傳成功。

Principal Result
sdwh.local\yi2 NO ❌
IIS_IUSRS YES ⭕️
IIS Apppool\Home YES ⭕️
Node1\Users YES ⭕️
Autenticated Users YES ⭕️
Interactive NO ❌
sdwh\Domain Users NO ❌
sdwh.local
Active Directive Domain Nmae
Node1
IIS Host Machine 有加入 AD
Authenticated Users
安全性是選擇在 sdwh.local 下選擇,推測都是指 NT Authority\Authenticated Users
Interactive
安全性是選擇在 sdwh.local 下選擇,推測都是指 NT Authority\Interactive
Home
本次 IIS 應用系統所使用的集區名稱

Principal 的群組關係

  • IIS_IUSRS ⭕️
    • IIS Apppool\Home ⭕️

這個隸屬關係無法直接觀察到,但可以從 MSDN 看到支持的討論意見。

  • Node1\Users ⭕️
    • sdwh.local\Domain Users ❌
      • sdwh.local\yi2 ❌
    • NT Authority\Authenticated Users ⭕️
    • NT Authority\Interactive ❌

推論

從實驗結果搭配群組關係,可以觀察到最小權限下的 IIS Apppool\Home 以及 NT Authority\Authenticated Users 給予 Write 及 Modify 權限,都能夠上傳成功。

IIS Apppool\Home 的權限應該是比目前尚不知道來歷的 NT Authority\Authenticated Users 更小也更安全。

IIS Apppool\Home 以及 NT Authority\Authenticated Users 兩者都可以完成上傳任務,猜測 IIS Apppool\Home 或許也是 NT Authority\Authenticated Users 的成員?

或者 IIS_IUSRS 是隸屬於 NT Authority\Authenticated Users?

意外的插曲,實驗的環境是使用 .NET 4 以後的版本,.NET 2 及 3.5 是否有不同的安全性機制尚待實證。

相關連結

IIS 筆記整理

IIS 網頁伺服器的安全設定 (IIS Security Configuration)