IIS 資料夾權限的設定方式


  1. 情境 1 Windows 驗證
    1. NTFS 安全性
      1. 應用程式集區的授權
    2. 資料夾共用
    3. 檔案上傳
  2. 情境 2 匿名驗證 (匿名再議)
    1. NTFS 安全性
    2. 資料夾共用
    3. 檔案上傳
  3. 結論應用
  4. 參考資料

IIS (Internet Information Server) 的權限設定只是幾個小按鈕就能完成,但正確的設定就能避免浪費除錯時間。而在設定時最基本的情境就是要讓網站能夠如期呈現,並且讓對應權限的使用者進行符合權限的動作。

logo

情境 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

參考資料

Secure Content in IIS Through File System ACLs