IIS Upload Files Permissions
2022-02-09
實驗 ASP.NET 上傳檔案時,資料夾需要提供 NTFS 權限的對象。實驗的授權對象包括了 Application Pool Identity、Domain Users、Authenticated Users、IIS_IUSRS 以及 Current Auth Users 等等。
最小權限的探究,實驗過才知道 😎
說明
使用 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 ❌
- sdwh.local\Domain Users ❌
推論
從實驗結果搭配群組關係,可以觀察到最小權限下的 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 是否有不同的安全性機制尚待實證。