Web App (IIS AppPool)整合式驗證登入SQL Server

為工作紀錄。讓 Web App 整合式驗證登入SQL Server 。目的就是不想用帳號密碼登入SQL Server。原因之一有帳密洩漏的安全問題,原因之二有帳密太多管理太麻煩的問題。解法方法就是採用整合式驗證,技術上就是以NTLM 或AD網域驗證。本例是NTLM整合式驗證。AD網域整合式驗證設定方法應該也差不多。

原理說明

本例為工作紀錄,故以案例角度說明不做通案說明。

WebApp 的實體是透過應用程式集區(Application Pool)執行,就是 WebApp 的帳號實體在 IIS AppPool 裡。知道 AppPool 的執行帳號是誰,就可以設定整合驗證了。

Phase1: 取得WebApp執行帳號

本例的WebApp 名稱:MineAsset2

如下圖:執行IIS管理員,【站台 → WebApp → 進階設定 → 應用程式集區】可以查看WebApp的AppPool是那一個。

IIS WebApp 進階設定

如下圖:【應用程式集區 → AppPool → 進階設定 → 識別】可以查看WebApp的執行帳號為誰。當選取識別為 ApplicationPoolIdentity那帳號會依帳號名稱組合成IIS APPPOOL\集區名稱,本例的執行帳號是IIS APPPOOL\MineAsset2

IIS AppPool 進階設定

Phase2: 設定 SQL Server 整合驗證(新增安全性登入)

本例的WebApp 名稱:MineAsset2。資料庫名稱:MineDB。 使用 ApplicationPoolIdentity所以執行帳號是:IIS APPPOOL\MineAsset2

因為帳號實體不在 SQL Sevrver 而是在 IIS AppPool 所以不是新增 user 而是新增『安全性-登入」。 如下圖:執行SQL Server SSMS 管理程式。【安全性 → 登入 → 新增登入 … 】

本紀錄是設定後的設內容展示。懶得寫字請看圖。

SQL Server-安全性-新增登入
SQL Server-安全性-新增登入-伺服器角色
SQL Server-安全性-新增登入-使用者對應
SQL Server-安全性-新增登入-安全性實體
SQL Server-安全性-新增登入-狀態

參考資料

EOF

Last updated