在 Azure API 管理前方設定 Front Door 標準版/進階版
適用於:所有 APIM 層
Azure Front Door 是新式應用程式傳遞網路平台,可提供安全、可擴充的內容傳遞網路 (CDN)、動態網站加速,以及全域 Web 應用程式的全域 HTTP(S) 負載平衡。 在API 管理之前使用時,Front Door 可以提供 TLS 卸載、端對端 TLS、負載平衡、GET 要求的回應快取,以及 Web 應用程式防火牆等功能。 如需完整的支援功能清單,請參閱 Azure Front Door 是什麼?
注意
針對 Web 工作負載,強烈建議使用 Azure DDoS 保護和 Web 應用程式防火牆來防範新興的 DDoS 攻擊。 另一個選項是運用 Azure Front Door 和 Web 應用程式防火牆。 Azure Front Door 提供平台層級保護來防範網路層級 DDoS 攻擊。 如需詳細資訊,請參閱 Azure 服務的安全性基準。
本文說明如何:
- 在可公開存取的 Azure API 管理實例前方設定 Azure Front Door 標準版/進階版設定檔:未進行網路連線,或在外部模式的虛擬網路中進行插入。
- 限制 API 管理僅接受來自 Azure Front Door 的 API 流量。
必要條件
- API 管理執行個體。
- 如果您選擇使用網路插入的實例,則必須部署在外部 VNet 中。 (在開發人員和進階版服務層級支援虛擬網路插入。)
- 將一或多個 API 匯入至您的 API 管理實例,以確認透過 Front Door 進行路由。
設定 Azure Front Door
建立設定檔
如需建立 Azure Front Door 標準版/進階版設定檔的步驟,請參閱快速入門:建立 Azure Front Door 設定檔 - Azure 入口網站。 在本文中,您可以選擇 Front Door 標準版設定檔。 如需 Front Door 標準版和 Front Door 進階版的比較,請參閱 層級比較。
設定下列 Front Door 設定,這些設定是使用您 API 管理實例的閘道端點作為 Front Door 來源的特定設定。 如需其他設定的說明,請參閱 Front Door 快速入門。
設定 | 值 |
---|---|
原始類型 | 選取 [API 管理] |
原始主機名稱 | 選取 API 管理實例的主機名稱,例如 myapim.azure-api.net |
快取 | 針對 Front Door 選取 [啟用快取],以快取靜態內容 |
查詢字串快取行為 | 選取 [使用查詢字串]。 |
更新預設來源群組
建立設定檔之後,請更新預設的來源群組,以包含API 管理健康情況探查。
在入口網站中,移至您的 Front Door 設定檔。
在左側功能表的 [設定] 下方,選取 [來源群組]>[default-origin-group]。
在 [更新來源群組] 視窗中,設定下列 [健全狀態探查] 設定並選取 [更新]:
設定 值 狀態 選取 [啟用健全狀態探查] 路徑 輸入 /status-0123456789abcdef
通訊協定 選取 [HTTPS] 方法 選取 [GET] [間隔時間 (秒)] 輸入 30
更新預設路由
建議您更新與 API 管理來源群組相關聯的預設路由,以將 HTTPS 作為轉送通訊協定使用。
- 在入口網站中,移至您的 Front Door 設定檔。
- 在左側功能表的 [設定] 下,選取 [來源群組]。
- 展開 [default-origin-group]。
- 在 [default-route] 的操作功能表中 (即 [...]),選取 [設定路由]。
- 將 [接受的通訊協定] 設定為 [HTTP 和 HTTPS]。
- 啟用 [將所有流量重新導向為使用 HTTPS]。
- 將 [轉送通訊協定] 設定為 [僅 HTTPS],並選取 [更新]。
測試組態
呼叫由 API 管理 所裝載的 API,例如示範會議 API,以測試 Front Door 配置檔組態。 首先,直接透過 API 管理閘道呼叫 API,以確保可與 API 連線。 然後,透過 Front Door 呼叫 API。
直接透過 API 管理呼叫 API
若要直接透過 API 管理 閘道呼叫 API,您可以使用命令行用戶端,例如 curl
或其他 HTTP 用戶端。 成功的回應會傳 200 OK
回 HTTP 回應和預期的數據:
透過 Front Door 直接呼叫 API
使用為實例設定的 Front Door 端點呼叫相同的 API 作業。 azurefd.net
網域中的端點主機名稱會顯示在 Front Door 設定檔中 [概觀] 頁面的入口網站上。 成功的回應會顯示 200 OK
並傳回與上一個範例相同的數據。
將傳入流量限制為 API 管理實例
使用 API 管理原則,確保您的 API 管理實例僅接受來自 Azure Front Door 的流量。 您可以使用一或兩種下列方法,來完成此項限制:
- 將傳入 IP 位址限制為 API 管理實例
- 根據
X-Azure-FDID
標頭的值限制流量
限制傳入的 IP 位址
您可在 API 管理設定輸入 ip-filter 原則,僅允許 Front Door 相關流量,包含:
Front Door 的後端 IP 位址空間 - 允許 IP 位址對應至 Azure IP 範圍和服務標籤的 AzureFrontDoor.Backend 區段中。
注意
如果您的 API 管理實例部署在外部虛擬網路中,請在用於 API 管理實例的子網路中新增輸入網路安全性群組規則,以完成相同的限制。 設定規則,以允許連接埠 443 上來源服務標籤 AzureFrontDoor.Backend 的 HTTPS 流量。
Azure 基礎結構服務 - 允許 IP 位址 168.63.129.16 和 169.254.169.254。
檢查 Front Door 標頭
透過 Front Door 路由傳送的要求包含 Front Door 設定特定的標頭。 您可設定 check-header 原則,來根據傳送至 API 管理的 X-Azure-FDID
HTTP 要求標頭唯一值,篩選傳入要求。 此標頭值為 [Front Door ID],會顯示在 Front Door 設定檔的 [概觀] 頁面的入口網站中。
在下列原則範例中,Front Door ID 是使用名為 FrontDoorId
的具名值進行指定。
<check-header name="X-Azure-FDID" failed-check-httpcode="403" failed-check-error-message="Invalid request." ignore-case="false">
<value>{{FrontDoorId}}</value>
</check-header>
未伴隨有效 X-Azure-FDID
標頭的要求會傳回 403 Forbidden
回應。
(選擇性) 設定開發人員入口網站的 Front Door
您可以選擇性地將 API 管理實例的開發人員入口網站設定為 Front Door 設定檔的端點。 雖然受控開發人員入口網站已透過 Azure 管理的 CDN 於前方管理,但您可能想要利用 Front Door 功能,例如 WAF。
以下是將開發人員入口網站端點新增至設定檔的高階步驟:
若要新增端點並設定路由,請參閱使用 Front Door 管理員設定端點。
新增路由時,新增來源群組和來源設定以代表開發人員入口網站:
- [來源類型] - 選取 [自訂]
- [主機名稱] - 輸入開發人員入口網站的主機名稱,例如 myapim.developer.azure-api.net
如需設定的詳細資訊和資料,請參閱 如何設定 Azure Front Door 的來源。
注意
如果您已針對開發人員入口網站設定 Microsoft Entra ID 或 Azure AD B2C 識別提供者,則必須使用額外的重新導向 URL 將對應的應用程式註冊更新為 Front Door。 在應用程式註冊中,在 Front Door 設定檔中設定的開發人員入口網站端點新增 URL。
下一步
若要使用 API 管理自動部署 Front Door,請參閱將 API 管理來源搭配 Front Door 標準版/進階版範本
了解如何在 Azure Front Door 上部署 Web 應用程式防火牆 (WAF),以保護 API 管理實例免於遭受惡意攻擊。