IIS (Internet Information Server) 的權限設定只是幾個小按鈕就能完成,但正確的設定就能避免浪費除錯時間。而在設定時最基本的情境就是要讓網站能夠如期呈現,並且讓對應權限的使用者進行符合權限的動作。
情境 1 Windows 驗證
開發應用系統,使用 Windows 驗證,應用程式會利用 Identity.User 的資訊與資料庫中的權限管理做系統權限的驗證。同時伺服器應用程式所在的資料夾必須支援共用資料夾,如此便可以藉由 UNC 的方式發布編譯後的程式至伺服器。
NTFS 安全性
授權用途 | 常用授權 |
---|---|
過版與程式發布 | (Read / Write) Domain\AD Editors Groups |
Static File Http Module | (Read) Domain\Authenticated Users |
應用程式集區 | 依照集區識別身分來決定 |
應用程式集區的授權
識別身分 | 權限需求 |
---|---|
Application IdentityPool | IIS AppPool\PoolName |
Windows User | Domain\Authenticated Users |
資料夾共用
- 進階共用移除 Everyone
- 進階共用加入 Domin\AD Editors groups (Read /Wrtie)
完成設定後系統會比對進階共用與 NTFS 安全性權限的交集,因此一般使用者僅能透過 IIS_IUSRS 進行瀏覽,而屬於 AD Editors Groups 的開發人員可以透過 UNC 存取發布程式的資料夾。
檔案上傳
如果有上傳檔案的需求,則需要另外對上傳的資料夾提供IIS AppPool\PoolName (Write) 的權限,使用者方可藉由IIS AppPool\PoolName 將檔案上傳至伺服器。
情境 2 匿名驗證 (匿名再議)
僅需要匿名驗證時,則加入 IUSR 並提供 Read 的權限。
權限設定
NTFS 安全性
- Domain\Authenticated Users(Read)
- Machine\IUSRS (Read)
如果非網域環境,例如對外網站以 Everyone 取代 Authenticated Users 授權
- Machine\Everyone (Read)
資料夾共用
檔案上傳
結論應用
集區使用 Application Pool Identity & Windows 驗證
安全性:
- IIS AppPool\PoolName
- Domain\Authenticated Users (如果有提供 Static Files 或 Web Form 的 aspx)
集區使用 Windows Specific User & Windows 驗證
安全性:
- Domain\Authenticated Users (如果有提供 Static Files 包含 web form 的 aspx)
- Domain\Windows Specific User (ASP.NET MVC Handler 無 Static Files)
集區使用 Application Pool Identity & 匿名驗證
安全性:
- Machine\IUSR