概觀
本文說明能在使用 Microsoft Entra 應用程式 Proxy 時保護使用者和應用程式安全的元件。
下圖顯示 Microsoft Entra ID 如何提供對內部部署應用程式的安全遠端存取。
安全性優點
Microsoft Entra 應用程式 Proxy 提供許多安全性優點。 這些好處包括:
- 已驗證的存取
- 條件式存取
- 流量中斷
- 所有對外存取權限
- 雲端級別分析與機器學習
- 遠端存取作為一種服務
- Microsoft 分散式阻斷服務攻擊 (DDoS 攻擊) 保護服務
已驗證的存取
只有經過認證的連線才能在使用 Microsoft Entra 預認證時存取你的網路。
Microsoft Entra 應用程式 Proxy 依賴 Microsoft Entra Security Token Service (STS) 來進行所有驗證。 預認證本質上能阻擋大量匿名攻擊,因為只有經過認證的身份才能存取後端應用程式。
如果你選擇直通作為預先驗證方式,就無法享有這個優勢。
條件式存取
在建立您的網路連線之前,先套用更豐富的原則控制。
條件式存取可讓您定義限制,以規定如何允許使用者存取您的應用程式。 您可以位置、驗證強度和使用者風險狀況作為基礎,來建立限制登入的原則。
你也可以使用條件存取來設定多重驗證政策,為使用者認證增添另一層安全保障。 您的應用程式也可以透過 Microsoft Entra 條件存取,路由至 Microsoft Defender for Cloud Apps,透過 存取 與 會話 政策提供即時監控與控制。
流量中斷
終止雲端中所有的流量。
Microsoft Entra 應用程式代理是一個反向代理,因此所有至後端應用程式的流量都會在此服務被終止。 該服務只會重新建立與後端伺服器的會話,這表示你的後端伺服器不會直接暴露於 HTTP 流量。 這種配置意味著你能更好地防範針對性的攻擊。
所有存取皆為向外
不需要開啟至公司網路的入站連線。
私有網路連接器只會使用連出連線至 Microsoft Entra 應用程式代理服務。 不需要針對連入連線開啟防火牆連接埠。 傳統代理伺服器需要周邊網路(也稱為 非軍事區(DMZ)或 屏蔽子網),並允許網路邊緣的未認證連線。 使用應用程式 Proxy,您就不需要周邊網路,因為所有連線皆為輸出方向,並且是透過安全通道來傳輸。
如需連接器的詳細資訊,請參閱了解 Microsoft Entra 私人網路連接器。
雲端級別分析與機器學習
取得最新的安全性保護。
因為應用程式 Proxy 是 Microsoft Entra ID 的一部分,所以使用 Microsoft Entra ID Protection,其中包含來自 Microsoft Security Response Center 和 Digital Crimes Unit 的資料。 他們共同主動識別被入侵帳號,並提供高風險登入的防護。多種因素決定哪些登入嘗試屬於高風險。 這些因素包括感染的裝置、匿名化網路,以及非典型或不太可能出現的地點。
這些報告和事件中有許多已可透過 API 與安全性資訊和事件管理 (SIEM) 系統整合。
遠端存取作為一種服務
您不必擔心維護及修補內部部署伺服器的事宜。
尚未更新的軟體仍然是許多攻擊的來源。 Microsoft Entra 應用程式 Proxy 是 Microsoft 自有的網際網路級別服務,因此您永遠會獲得最新的安全性修補程式和升級。
為了提升 Microsoft Entra 應用程式發佈的安全性,應用程式代理會阻擋網路爬蟲機器人索引和歸檔你的應用程式。 每次 Web 編目程式傀儡程式嘗試擷取已發佈應用程式的傀儡程式設定時,應用程式 Proxy 會以含有 User-agent: * Disallow: / 的 robots.txt 檔案回覆。
Microsoft 分散式阻斷服務攻擊 (DDoS 攻擊) 保護服務
透過應用程式 Proxy 發佈的應用程式會受到保護,以免遭受分散式阻斷服務 (DDoS) 攻擊。 Microsoft 會自動在所有資料中心啟用此保護。 Microsoft DDoS 保護服務提供持續性流量監控和即時緩解功能,以抵禦常見的網路層級攻擊。
內部構造
Microsoft Entra 應用程式 Proxy 是由兩個部分組成:
- 雲端服務:此服務運行於 Microsoft 雲端,是外部客戶端與使用者連接的平台。
- 本地端連接器:作為本地元件,連接器會監聽來自 Microsoft Entra 應用程式代理服務的請求,並處理與內部應用程式的連線。
在以下情況下,會建立連接器與應用程式代理服務之間的流程:
- 首先設定連接器。
- 連接器會從應用程式 Proxy 服務提取設定資訊。
- 使用者會存取發佈的應用程式。
注意
所有通訊皆透過傳輸層安全(TLS)進行,且始終從連接器發送至應用程式代理服務。 該服務僅限於向外傳送。
連接器會使用用戶端憑證來驗證幾乎所有呼叫的應用程式 Proxy 服務。 此流程的唯一例外是初始設定步驟,即在此步驟中建立用戶端憑證。
安裝連接器
第一次設定連接器時,會發生下列流程事件:
- 接頭在安裝時會向服務註冊。 安裝程式會提示使用者輸入他們的 Microsoft Entra 管理員憑證。 接著,會將從這次驗證取得的權杖呈現給 Microsoft Entra 應用程式 Proxy 服務。
- 應用程式 Proxy 服務會評估權杖。 它會檢查使用者是否至少是租戶中的應用程式管理員。 如果使用者沒有,程序就會終止。
- 連接器會產生用戶端證書請求,並連同令牌一起傳遞至應用程式代理服務。 服務依次會驗證權杖,並簽署客戶端憑證請求。
- 連接器可以使用此用戶端憑證,以便未來與應用程式 Proxy 服務通訊。
- 連接器會使用用戶端憑證從服務中初始擷取系統設定資料,並準備接受請求。
更新組態設定
每當應用程式 Proxy 服務更新組態設定時,就會發生下列流程事件:
- 連接器會使用其用戶端憑證連線至應用程式 Proxy 服務內的組態端點。
- 已驗證用戶端憑證。
- 應用程式 Proxy 服務會將組態資料傳回連接器 (例如,連接器應屬的連接器群組)。
- 如果目前的憑證超過 180 天,連接器就會產生新的憑證要求。
存取已發佈的應用程式
當使用者存取已發佈的應用程式時,會在應用程式 Proxy 服務和私人網路連接器之間進行下列事件:
- 該服務會為應用程式驗證使用者。
- 服務會將請求放入連接器佇列。
- 連接器負責處理佇列中的請求。
- 連接器等待回應。
- 該服務會將資料串流給使用者。
若要深入了解每個步驟中所發生的事項,請繼續閱讀。
1.服務會驗證應用程式的使用者
若應用程式使用直通作為預認證方式,請跳過本節的步驟。
如果應用程式設定為使用 Microsoft Entra ID 預先認證,Microsoft Entra ID 會將使用者重新導向 STS 進行認證。 會發生下列步驟:
- 應用程式代理檢查條件式存取政策需求。 此步驟確保使用者被指派到應用程式中。 如果需要雙步驟驗證,驗證順序會提示使用者進行第二驗證方法。
- Microsoft Entra STS 會針對應用程式發出已簽署權杖,並將使用者重新導向回到應用程式 Proxy 服務。
- 應用程式代理會確保權杖已簽發給正確的應用程式、經簽署,且有效。
- 應用程式 Proxy 會設定加密的驗證 cookie,以表示應用程式成功驗證。 此 cookie 包含根據 Microsoft Entra ID 令牌設定的到期時間戳。 Cookie 也包含驗證所依據的使用者名稱。 會使用僅應用程式 Proxy 服務所知的私密金鑰來加密此 cookie。
- 應用程式 Proxy 會將使用者重新導向回到原始要求的 URL。
若預認證步驟的任何部分失敗,使用者的請求將被拒絕,並會顯示問題來源訊息。
2. 服務會將請求放在連接器佇列中
連接器會保持與應用代理服務的外向連線開啟。 當有要求傳入時,服務會將該要求排入開啟連線中的一個佇列中,以便連接器進行挑選。
要求包含要求標頭、來自加密 cookie 的資料、提出要求的使用者,以及要求識別碼。 雖然來自加密 cookie 的資料會與要求一起傳送,但驗證 cookie 本身並不是。
3.連接器會處理來自佇列的要求。
根據要求,應用程式 Proxy 會執行下列其中一個動作:
如果請求是簡單操作(例如,主體內沒有資料,如同 RESTful API 的請求一樣),連接器會建立連結至目標內部資源,然後等候回應。
如果要求的主體中包含相關資料(例如,RESTful API
POST作業),連接器會使用用戶端憑證來建立與應用程式 Proxy 執行個體的外部連線。 它會透過此連線來請求資料,並開啟與相關內部資源的連線。 在收到來自連接器的要求後,應用程式 Proxy 服務會開始接受來自使用者的內容,並將資料轉送至連接器。 連接器會依次將資料轉送到內部資源。
4.連接器會等候回應。
完成所有內容的要求並傳輸至後端後,連接器會等候回應。
在收到回應後,連接器會建立對應用程式 Proxy 服務的輸出連線,以傳回標頭詳細資料,並開始串流傳回的資料。
5.服務會將資料串流給使用者。
應用程式的一些處理會在此時發生。 例如,應用程式 Proxy 會轉譯標頭或 URL。