整合 ILB App Service 環境與 Azure 應用程式閘道
App Service Environment 是在客戶的 Azure 虛擬網路子網路中進行的 Azure App Service 部署。 可使用應用程式存取的外部或內部端點進行部署。 使用內部端點部署 App Service 環境 稱為內部負載平衡器 (ILB) App Service 環境。
Web 應用程式防火牆會檢查輸入的 Web 流量以封鎖 SQL 插入、跨網站指令碼、惡意程式碼上傳和應用程式 DDoS 以及其他攻擊,藉此保護您的 Web 應用程式。 您可以從 Azure Marketplace 取得 WAF 裝置,或使用 Azure 應用程式閘道。
Azure 應用程式閘道 是一種虛擬設備,可提供第 7 層負載平衡、TLS 卸除和 Web 應用程式防火牆 (WAF) 保護。 它可以接聽公用 IP 位址,並將流量路由到您的應用程式端點。 下列資訊說明如何將 WAF 設定的應用程式閘道與 ILB App Service 環境 中的應用程式整合。
應用程式閘道與 ILB App Service 環境 的整合位於應用層級。 當您使用 ILB App Service 環境 設定應用程式閘道時,您會針對 ILB App Service 環境 中的特定應用程式執行此動作。
在本逐步解說中,您將:
- 建立 Azure 應用程式閘道。
- 將應用程式閘道設定為指向 ILB App Service 環境 中的應用程式。
- 編輯指向應用程式閘道的公用 DNS 主機名稱。
必要條件
若要整合應用程式閘道與 ILB App Service 環境,您需要:
- ILB App Service 環境。
- ILB App Service 環境 的私人 DNS 區域。
- 在 ILB App Service 環境 中執行的應用程式。
- 應用程式閘道的公用 DNS 名稱。
- 如果您需要對應用程式閘道使用 TLS 加密,則需要用來繫結至應用程式閘道的有效公用憑證。
ILB App Service 環境
如需如何建立 ILB App Service 環境 的詳細資訊,App Service 環境 請參閱使用 Azure Resource Manager 範本建立 Azure 入口網站 和建立 App Service 環境。
建立 ILB App Service 環境 之後,預設網域為
<YourAseName>.appserviceenvironment.net
。內部負載平衡器已針對輸入存取進行佈建。 您可以在 [App Service 環境 設定] 底下的 [IP 位址] 中檢查 [輸入位址]。 您可以稍後建立對應至此 IP 位址的私人 DNS 區域。
私人 DNS 區域
您需要私人 DNS 區域,才能進行內部名稱解析。 使用下表所示的記錄集,使用 App Service 環境 名稱建立它(如需指示,請參閱快速入門 - 使用 Azure 入口網站 建立 Azure 私人 DNS 區域)。
名稱 | 類型 | 值 |
---|---|---|
* | A | App Service 環境 輸入位址 |
@ | A | App Service 環境 輸入位址 |
@ | SOA | App Service 環境 DNS 名稱 |
*.scm | A | App Service 環境 輸入位址 |
ILB App Service 環境 上的 App Service
您必須在 ILB App Service 環境 中建立 App Service 方案和應用程式。 在入口網站中建立應用程式時,請選取您的 ILB App Service 環境 作為 [區域]。
應用程式閘道的公用 DNS 名稱
若要從網際網路連線至應用程式閘道,您需要可路由的網域名稱。 在此情況下,我使用了可路由的網域名稱 asabuludemo.com
,並規劃使用此網域名稱 app.asabuludemo.com
連線至 App Service。 建立應用程式閘道之後,對應至此應用程式功能變數名稱的IP位址必須設定為 應用程式閘道公用IP位址。
有了對應至應用程式閘道的公用網域,您就不需要在 App Service 中設定自訂網域。 您可以使用 App Service 網域來購買自訂網域名稱。
有效公開憑證
若要增強安全性,請系結會話加密的 TLS 憑證。 若要將 TLS 憑證系結至應用程式閘道,則需要具有下列資訊的有效公用憑證。 使用 App Service 憑證,您可以購買 TLS 憑證,並以格式匯出 .pfx
。
名稱 | 數值 | Description |
---|---|---|
一般名稱 | <yourappname>.<yourdomainname> ,例如:app.asabuludemo.com 或 *.<yourdomainname> ,例如:*.asabuludemo.com |
應用程式閘道的標準憑證或萬用字元憑證 |
主體別名 | <yourappname>.scm.<yourdomainname> ,例如:app.scm.asabuludemo.com 或 *.scm.<yourdomainname> ,例如:*.scm.asabuludemo.com |
允許連線至 App Service Kudu 服務的 SAN。 若您不想將 App Service Kudu 服務發佈至網際網路,則這是選擇性設定。 |
憑證檔案應具有私鑰,並以格式儲存 .pfx
。 憑證稍後會匯入至應用程式閘道。
建立應用程式閘道
如需建立基本應用程式閘道,請參閱教學課程:使用 Azure 入口網站建立具有 Web 應用程式防火牆的應用程式閘道。
在本教學課程中,我們會使用 Azure 入口網站 建立具有 ILB App Service 環境 的應用程式閘道。
在 Azure 入口網站中,選取 [新增]>[網路]>[應用程式閘道] 以建立應用程式閘道。
基本設定
在 [階層] 下拉式清單中,您可以選取 [標準 V2] 或 [WAF V2] 以在應用程式閘道上啟用 [WAF] 功能。
前端設定
將前端 IP 位址類型選取為 [公用]、[私人] 或 [兩者]。 若設定為 [私人] 或 [兩者],則必須在應用程式閘道子網路範圍中指派靜態 IP 位址。 在此情況下,我們只會將公用端點設定為 [公用 IP]。
公用 IP 位址 - 您必須為應用程式閘道公用存取建立與公用 IP 位址的關聯。 記錄此 IP 位址,稍後必須在您的 DNS 服務中新增記錄。
後端設定
輸入後端集區名稱,然後在 [目標類型] 中選取 [應用程式服務] 或 [IP 位址或 FQDN]。 在此情況下,我們會設定為 [應用程式服務],然後從目標下拉式清單中選取 App Service 名稱。
組態設定
在 [設定] 設定中,您必須選取 [新增路由規則] 圖示來新增路由規則。
您必須在路由規則中設定接聽程式與後端目標。 您可以新增 HTTP 接聽程式以進行概念證明部署,或新增 HTTPS 接聽程式以增強安全性。
若要使用 HTTP 通訊協定連線至應用程式閘道,您可以使用下列設定來建立接聽程式:
參數 數值 Description 規則名稱 例如: http-routingrule
路由名稱 接聽程式名稱 例如: http-listener
接聽程式名稱 前端 IP 公開 針對網際網路存取,請設定為 [公用] 通訊協定 HTTP 請勿使用 TLS 加密 連接埠 80 預設的 HTTP 連接埠 接聽程式類型 多站台 允許在應用程式閘道上接聽多網站 Host type 多重/萬用字元 若接聽程式類型設定為多網站,則設定為多重或萬用字元網站名稱。 主機名稱 例如: app.asabuludemo.com
設定為 App Service 的可路由網域名稱 若要使用 TLS 加密連線到應用程式閘道,您可以使用下列設定來建立接聽程式:
參數 數值 Description 規則名稱 例如: https-routingrule
路由名稱 接聽程式名稱 例如: https-listener
接聽程式名稱 前端 IP 公開 針對網際網路存取,請設定為 [公用] 通訊協定 HTTPS 使用 TLS 加密 連接埠 443 預設 HTTPS 連接埠 Https 設定 上傳憑證 上傳憑證包含 CN 與具有 .pfx 格式的私密金鑰。 接聽程式類型 多站台 允許在應用程式閘道上接聽多網站 Host type 多重/萬用字元 若接聽程式類型設定為多網站,則設定為多重或萬用字元網站名稱。 主機名稱 例如: app.asabuludemo.com
設定為 App Service 的可路由網域名稱 您必須在後端目標中設定後端集區與 HTTP 設定。 後端集區已在先前的步驟中設定。 選取 [新增] 連結以新增 HTTP 設定。
下表所列的 HTTP 設定:
參數 數值 Description HTTP 設定名稱 例如: https-setting
HTTP 設定名稱 後端通訊協定 HTTPS 使用 TLS 加密 後端連接埠 443 預設 HTTPS 連接埠 使用已知的 CA 憑證 Yes ILB App Service 環境 的預設網域名稱 .appserviceenvironment.net
。 此網域的憑證是由公用受信任根授權單位所簽發。 在 [受信任的根憑證] 設定中,您可以設定為使用 [well known CA trusted root certificate] \(已知 CA 受信任的根憑證\)。以新的主機名稱覆寫 Yes 在連線到 ILB 上的應用程式時,會覆寫主機名標頭 App Service 環境 主機名稱覆寫 從後端目標挑選主機名稱 將後端集區設定為 App Service 時,您可以從後端目標挑選主機 建立自訂探查 No 使用預設的健全狀態探查
設定應用程式閘道與 ILB App Service 環境 整合
若要從應用程式閘道存取 ILB App Service 環境,您需要檢查虛擬網路是否連結至私人 DNS 區域。 如果沒有連結至應用程式閘道虛擬網路的虛擬網路,請新增虛擬網路連結,並遵循下列步驟。
使用私人 DNS 區域設定虛擬網路連結
- 若要使用私人 DNS 區域設定虛擬網路連結,請移至私人 DNS 區域設定平面。 選取 [虛擬網路連結] > [新增]
- 輸入連結名稱,然後選取應用程式閘道所在的個別訂閱與虛擬網路。
- 您可以從應用程式閘道平面中的 [後端健康狀態] 確認後端健康狀態。
新增公用 DNS 記錄
從網際網路存取應用程式閘道時,您必須設定適當的 DNS 對應。
- 應用程式閘道的公用 IP 位址可以在應用程式閘道平面的 [前端 IP 設定] 中找到。
- 例如,您可以使用 Azure DNS 服務新增記錄集,將應用程式網域名稱對應至應用程式閘道的公用 IP 位址。
驗證連線
- 在從網際網路存取的電腦上,您可以將應用程式網域名稱的名稱解析驗證為應用程式閘道公用 IP 位址。
- 在從網際網路存取的電腦上,從瀏覽器測試 Web 存取。