Active-Directory

IIS 為反向代理啟用身份驗證

  • April 3, 2019

我正在將反向代理配置從 Apache 移動到 IIS。其中一些站點在繼續之前需要在代理上進行身份驗證。為簡單起見,它們位於單獨的 IIS 站點上。如何指定此站點和/或我在其中配置的反向代理可由特定 AD 組使用?

我試過的:

以下是在 IIS 中僅啟用 Windows 身份驗證的情況下完成的。都是 Server 2016 / IIS 10。

  1. 將託管反向代理站點的文件夾上的 NTFS 權限設置為僅domain\desiredgroupproxy\iis_iusrs組,但這沒有幫助 - 它仍然允許任何domain\domain users通過。
  2. 編輯domain\desiredgroup具有訪問權限和domain\domain users被拒絕的身份驗證規則。這阻止了所有人。

似乎在 IIS 中不受本機支持。

更可接受的方法是使用應用程序請求路由 (ARR) - 但這需要設置額外的 AD FS(Active Directory 聯合服務)伺服器。

我最近想為 Kibana 實例做同樣的事情,碰巧找到了這個幫助部落格:https://www.smbadmin.com/2017/07/securing-kibana-with-iis-reverse-proxy。 html

由於連結在堆棧上不被認為是一個好的答案,我將總結一下:

  1. 安裝具有 Web 伺服器角色的 IIS 以及 URL 授權、Windows 身份驗證和管理工具。
  2. 使用 URL 重寫模組配置 IIS 反向代理。這可能需要一些修補,具體取決於後端網站/Web 應用程序的性質,並且在某些情況下它可能會完全失敗(稍後會詳細介紹)。
  3. 設置 SSL(可選) - 代理接受通過 https 傳入的流量 - 後端可以使用 http,因為它是私有連接。保護未啟用 SSL 的站點/應用程序的好方法。
  4. 設置身份驗證 - 使用 IIS 網站的身份驗證模組,禁用匿名並啟用首選方法,在我的情況下為“Windows 身份驗證”。
  5. 設置授權規則 - 刪除允許所有預設規則並為應該有權訪問的 AD 使用者或組添加允許規則。

因此,這對我的 Kibana 安裝非常有用,因此我決定為 Jenkins 和許多其他網站和 Web 應用程序部署它,並進行了一些我最常用的調整。

但是,請注意- 我嘗試過的一些網站,只是不會接受 - 例如,Confluence,授權彈出視窗會在每次頁面刷新時不斷出現。另一個不起眼的閉源自定義 Web 應用程序使用了一些糟糕的 Web 開發實踐,可能會持續導致 500 和錯誤的重定向。

我將來可能會嘗試設置 ARR,看看在這些情況下是否效果更好,但 ARR 超出了您最初問題的範圍。

引用自:https://serverfault.com/questions/858798