教學課程:為標頭型單一登入設定 F5 BIG-IP 存取原則管理員

了解如何使用 F5 BIG-IP 進階設定實作安全混合式存取 (SHA),以提供標頭式應用程式的單一登入 (SSO)。 BIG-IP 已發佈應用程式和 Microsoft Entra 設定優點:

深入了解:

案例描述

對於此案例,有使用 HTTP 授權標頭的舊版應用程式,以控制對受保護內容的存取。 理想情況下,Microsoft Entra ID 會管理應用程式存取。 不過,舊版缺少新式驗證通訊協定。 現代化需要投入精力和時間,同時帶來停機成本和風險。 相反地,請在公用網際網路與內部應用程式之間部署 BIG-IP,以管制應用程式的輸入存取。

應用程式前面的 BIG-IP 可讓您使用 Microsoft Entra 預先驗證和標頭型 SSO 來重疊服務。 此設定可改善應用程式安全性態勢。

案例架構

此案例的安全混合式存取解決方案是由下列各項所組成:

  • 應用程式:由 Microsoft Entra SHA 保護的 BIG-IP 已發佈服務
  • Microsoft Entra ID:安全性聲明標記語言 (SAML) 識別提供者 (IdP),可驗證使用者認證、條件式存取和 BIG-IP 的 SSO
    • 透過 SSO,Microsoft Entra ID 可為 BIG-IP 提供所需的工作階段屬性,包括使用者識別碼
  • BIG-IP:應用程式的反向 Proxy 和 SAML 服務提供者 (SP),用於將驗證委派給 SAML IdP,再對後端應用程式執行標頭型 SSO

下圖說明使用 Microsoft Entra ID、BIG-IP、APM 和應用程式的使用者流程。

圖表:使用 Microsoft Entra ID、BIG-IP、APM 和應用程式的使用者流程

  1. 使用者會連線到應用程式 SAML SP 端點 (BIG-IP)。
  2. BIG-IP APM 存取原則會將使用者重新導向至 Microsoft Entra ID (SAML IdP)。
  3. Microsoft Entra 會預先驗證使用者,並套用 ConditionalAccess 原則。
  4. 使用者會重新導向至 BIG-IP (SAML SP),並使用已發行的 SAML 權杖來執行 SSO。
  5. BIG-IP 會在應用程式的要求中插入 Microsoft Entra 屬性作為標頭。
  6. 應用程式會授權要求並傳回承載。

必要條件

對於此案例,您需要:

  • Azure 訂用帳戶
  • 下列其中一個角色:雲端應用程式管理員或應用程式系統管理員
  • BIG-IP 或在 Azure 中部署 BIG-IP 虛擬版本 (VE)
  • 下列任一個 F5 BIG-IP 授權:
    • F5 BIG-IP® Best 套件組合
    • F5 BIG-IP Access Policy Manager™ (APM) 獨立授權
    • BIG-IP F5 BIG-IP® Local Traffic Manager™ (LTM) 上的 F5 BIG-IP Access Policy Manager™ (APM) 附加元件授權
    • 90 天 BIG-IP 完整功能試用版。 請參閱免費試用版
  • 從內部部署目錄同步至 Microsoft Entra ID 的使用者身分識別
  • 用來透過 HTTPS 發佈服務的 SSL 憑證,或在測試時使用預設的憑證
  • 標頭式應用程式或用於測試的 IIS 標頭應用程式

BIG-IP 設定方法

下列指示是進階設定方法,這是實作 SHA 的靈活方式。 請手動建立 BIG-IP 設定物件。 對於引導式設定範本中未包含的案例,請使用此方法。

注意

請以您環境中的字串或值取代範例字串或值。

提示

根據您從中開始的入口網站,本文中的步驟可能會略有不同。

若要實作 SHA,第一個步驟是設定 BIG-IP APM 與 Microsoft Entra ID 之間的 SAML 同盟信任。 信任會在授與已發佈服務的存取權之前,建立讓 BIG-IP 將預先驗證和條件式存取交給 Microsoft Entra ID 所需的整合。

深入了解:什麼是條件式存取?

  1. 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心

  2. 瀏覽至 [身分識別]> [應用程式]> [企業應用程式]> [所有應用程式]

  3. 在頂端功能區上,選取 [+ 新增應用程式]

  4. 在資源庫中,搜尋 F5

  5. 選取 [F5 BIG-IP APM Microsoft Entra ID 整合]

  6. 輸入應用程式 [名稱]

  7. 選取 [新增/建立]

  8. 名稱會反映服務。

設定 Microsoft Entra SSO

  1. 新的 F5 應用程式屬性隨即顯示

  2. 選取 [管理] > [單一登入]

  3. 在 [選取單一登入方法] 頁面上,選取 [SAML]

  4. 略過提示以儲存單一登入設定。

  5. 選取 [否,稍後再儲存]

  6. 在 [以 SAML 設定單一登入] 上,對於 [基本 SAML 設定] 選取畫筆圖示。

  7. 以 BIG-IP 已發佈服務 URL 取代識別碼 URL。 例如,https://mytravel.contoso.com

  8. 對於回覆 URL 重複此動作,並包含 APM SAML 端點路徑。 例如,https://mytravel.contoso.com/saml/sp/profile/post/acs

    注意

    在此設定中,SAML 流程會以 IdP 模式運作:Microsoft Entra ID 會在重新導向至應用程式的 BIG-IP 服務端點之前,先向使用者發出 SAML 判斷提示。 BIG-IP APM 支援 IdP 和 SP 模式。

  9. 對於 [登出 URI],輸入 BIG-IP APM 單一登出 (SLO) 端點,前面加上服務主機標頭。 SLO URI 可確保使用者 BIG-IP APM 工作階段會在 Microsoft Entra 登出之後結束。例如, https://mytravel.contoso.com/saml/sp/profile/redirect/slr

    螢幕擷取畫面:識別碼、回覆 URL、登入 URL 等基本 SAML 設定輸入。

    注意

    從流量管理作業系統 (TMOS) v16 開始,SAML SLO 端點已變更為 /saml/sp/profile/redirect/slo

  10. 選取 [儲存]。

  11. 結束 SAML 設定。

  12. 跳過 SSO 測試提示。

  13. 若要編輯 [使用者屬性和宣告] > [+ 新增宣告],請選取畫筆圖示。

  14. 對於 [名稱],選取 Employeeid

  15. 對於 [來源屬性],選取 user.employeeid

  16. 選取儲存

螢幕擷取畫面:[管理宣告] 對話方塊中 [名稱] 和 [來源屬性] 的輸入。

  1. 選取 [+ 新增群組宣告]
  2. 選取 [指派給應用程式的群組] > [來源屬性] > [sAMAccountName]

螢幕擷取畫面:[群組宣告] 對話方塊中 [來源屬性] 的輸入。

  1. 選取 [儲存] 設定。
  2. 關閉檢視。
  3. 觀察 [使用者屬性和宣告] 區段屬性。 Microsoft Entra ID 會發出使用者屬性,以進行 BIG-IP APM 驗證並單一登入 (SSO) 至後端應用程式。

螢幕擷取畫面:[使用者屬性和宣告] 資訊,例如姓氏、電子郵件位址、身分識別等等。

注意

新增 BIG-IP 已發佈應用程式預期為標頭的其他宣告。 如果宣告位於 Microsoft Entra ID,則會發出更多定義的宣告。 在 Microsoft Entra ID 中定義目錄成員資格和使用者物件,然後才能發出宣告。 請參閱使用 Microsoft Entra ID 來設定應用程式的群組宣告

  1. 在 [SAML 簽署憑證] 區段中,選取 [下載]
  2. 同盟中繼資料 XML 檔案會儲存在您的電腦上。

螢幕擷取畫面:[SAML 簽署憑證] 對話方塊上 [同盟中繼資料 XML] 的 [下載] 連結。

Microsoft Entra ID 建立的 SAML 簽署憑證有三年的使用期限。

Microsoft Entra 授權

根據預設,Microsoft Entra ID 會將權杖發給獲得應用程式存取權的使用者。

  1. 在應用程式的 [設定] 檢視中,選取 [使用者和群組]
  2. 選取 [+ 新增使用者],然後在 [新增指派] 中選取 [使用者和群組]
  3. 在 [使用者和群組] 對話方塊中,新增已獲授權存取標頭式應用程式的使用者群組。
  4. 選取選取
  5. 選取指派

Microsoft Entra SAML 同盟信任已完成。 接下來,設定 BIG-IP APM 以發佈 Web 應用程式,並設定屬性以完成 SAML 預先驗證信任。

進階設定

使用下列各節來設定 SAML、標頭 SSO、存取設定檔等等。

SAML 設定

若要將已發佈的應用程式與 Microsoft Entra ID 建立同盟,請建立 BIG-IP SAML 服務提供者和對應的 SAML IdP 物件。

  1. 選取 [存取]>[同盟]>[SAML 服務提供者]>[本機 SP 服務]>[建立]

    螢幕擷取畫面:[SAML 服務提供者] 索引標籤底下的 [建立] 選項。

  2. 輸入名稱

  3. 輸入在 Microsoft Entra ID 中定義的實體識別碼

    螢幕擷取畫面:[建立新的 SAML SP 服務] 對話方塊上的 [名稱] 和 [實體識別碼] 輸入。

  4. 對於 [SP 名稱設定],如果實體識別碼不符合已發佈 URL 的主機名稱,請進行選取;如果其格式不是以一般主機名稱為基礎的 URL,則進行選取。 如果實體識別碼為 urn:mytravel:contosoonline,請提供外部配置和應用程式主機名稱。

  5. 向下捲動以選取新的 SAML SP 物件。

  6. 選取 [繫結/取消繫結 IdP 連接器]

    螢幕擷取畫面:[SAML 服務提供者] 索引標籤底下的 [繫結/取消繫結 IdP 連接器] 選項。

  7. 選取 [建立新的 IdP 連接器]

  8. 從下拉式清單中,選取 [從中繼資料]

    螢幕擷取畫面:[建立新的 IdP 連線] 下拉式功能表中的 [從中繼資料] 選項。

  9. 瀏覽至您下載的同盟中繼資料 XML 檔案。

  10. 對於 APM 物件,輸入代表外部 SAML IdP 的 [識別提供者名稱]。 例如,MyTravel_EntraID

螢幕擷取畫面:[建立新的 SAML IdP 連接器] 底下的 [選取檔案] 和 [識別提供者名稱] 輸入。

  1. 選取 [新增資料列]
  2. 選取新的 SAML IdP 連接器
  3. 選取更新

螢幕擷取畫面:[SAML IdP 連接器] 底下的 [更新] 選項。

  1. 選取 [確定]。

螢幕擷取畫面:已儲存設定

標頭 SSO 設定

建立 APM SSO 物件。

  1. 選取 [存取] > [設定檔/原則] > [每個要求原則] > [建立]

  2. 輸入名稱

  3. 至少新增一個 [接受的語言]

  4. 選取 [完成]

    螢幕擷取畫面:[名稱] 和 [接受的語言] 輸入。

  5. 對於新的每個要求原則,請選取 [編輯]

    螢幕擷取畫面:[每個要求原則] 資料行中的 [編輯] 選項。

  6. 視覺效果原則編輯器隨即啟動。

  7. 在 [後援] 底下,選取 + 符號。

    螢幕擷取畫面:[後援] 底下的加號選項。

  8. 在 [一般用途] 索引標籤上,選取 [HTTP 標頭]>[新增項目]

    螢幕擷取畫面:[HTTP 標頭] 選項。

  9. 選取 [新增項目]

  10. 建立三個 HTTP 和標頭修改項目。

  11. 對於 [標頭名稱],輸入 upn

  12. 對於 [標頭值],輸入 %{session.saml.last.identity}

  13. 對於 [標頭名稱],輸入 employeeid

  14. 對於 [標頭值],輸入 %{session.saml.last.attr.name.employeeid}

  15. 對於 [標頭名稱],輸入 group_authz

  16. 對於 [標頭值],輸入 %{session.saml.last.attr.name.http://schemas.microsoft.com/ws/2008/06/identity/claims/groups}

注意

大括弧內的 APM 工作階段變數會區分大小寫。 建議您以小寫格式定義屬性。

螢幕擷取畫面:[屬性] 索引標籤上 [HTTP 標頭修改] 底下的標頭輸入。

  1. 選取 [儲存]。
  2. 關閉視覺效果原則編輯器。

螢幕擷取畫面:視覺效果原則編輯器。

存取設定檔設定

存取設定檔會將管理 BIG-IP 虛擬伺服器存取權的許多 APM 元素繫結在一起,包括存取原則、SSO 設定和 UI 設定。

  1. 選取 [存取] > [設定檔/原則] > [存取設定檔 (每個工作階段原則)] > [建立]

  2. 對於 [名稱],輸入 MyTravel

  3. 對於 [設定檔類型],選取 [全部]

  4. 對於 [接受的語言],至少選取一個語言。

  5. 選取 [完成]

    螢幕擷取畫面:[名稱]、[設定檔類型] 和 [接受的語言] 項目。

  6. 對於之前建立的每個工作階段設定檔,選取 [編輯]

    螢幕擷取畫面:[每個工作階段原則] 資料行中的 [編輯] 選項。

  7. 視覺效果原則編輯器隨即啟動。

  8. 在 [後援] 底下,選取 + 符號。

    螢幕擷取畫面:加號選項。

  9. 選取 [驗證] > [SAML 驗證] > [新增項目]

    螢幕擷取畫面:[驗證] 索引標籤上的 [SAML 驗證] 選項。

  10. 對於 [SAML 驗證 SP] 設定,從 [AAA 伺服器] 下拉式清單中選取之前建立的 SAML SP 物件。

  11. 選取 [儲存]。

螢幕擷取畫面:[AAA 伺服器] 選取項目。

屬性對應

下列指示是選擇性項目。 使用 LogonID_Mapping 設定時,BIG-IP 使用中工作階段清單擁有已登入的使用者主體名稱 (UPN),而不是工作階段編號。 分析記錄或進行疑難排解時,請使用此資料。

  1. 對於 [SAML 驗證] 的 [成功] 分支,選取 + 符號。

    螢幕擷取畫面:[SAML 驗證] 之 [成功] 分支上的加號。

  2. 在快顯視窗中,選取 [指派] > [變數指派] > [新增項目]

    螢幕擷取畫面:[指派] 索引標籤上的 [變數指派] 選項。

  3. 輸入名稱

  4. 在 [變數指派] 區段中,選取 [新增項目] > [變更]。 例如,LogonID_Mapping。

    螢幕擷取畫面:[新增項目] 和 [變更] 選項

  5. 對於 [自訂變數],設定 session.saml.last.identity

  6. 對於 [工作階段變數],設定 session.logon.last.username

  7. 選取 [完成]

  8. 選取儲存

  9. 在存取原則的 [成功] 分支上,選取 [拒絕] 終端。

  10. 選取允許

  11. 選取 [儲存]。

  12. 選取 [套用存取原則]

  13. 關閉視覺效果原則編輯器。

後端集區設定

若要讓 BIG-IP 能夠正確地轉接用戶端流量,請建立 APM 節點物件,其代表裝載應用程式的後端伺服器。 請將節點放置在 APM 集區中。

  1. 選取 [本機流量] > [集區] > [集區清單] > [建立]

  2. 對於伺服器集區物件,輸入 [名稱]。 例如,MyApps_VMs。

    螢幕擷取畫面:[套用存取原則]。

  3. 新增集區成員物件。

  4. 對於 [節點名稱],輸入裝載後端 Web 應用程式的伺服器名稱。

  5. 對於 [位址],輸入裝載應用程式的伺服器 IP 位址。

  6. 對於 [服務連接埠],輸入應用程式目前接聽的 HTTP/S 連接埠。

  7. 選取 [新增]。

    螢幕擷取畫面:[節點名稱]、[位址]、[服務連接埠] 及 [新增] 選項的輸入。

    注意

    若要深入了解,請前往 my.f5.com 以參閱 K13397:BIG-IP DNS 系統的 HTTP 健康情況監視要求格式概觀 (英文)。

虛擬伺服器設定

虛擬伺服器是一種 BIG-IP 資料平面物件,由接聽用戶端對應用程式要求的虛擬 IP 位址來表示。 收到的流量都會使用與虛擬伺服器相關聯的 APM 存取設定檔進行處理和評估。 流量會根據原則進行導向。

  1. 選取 [本機流量]>[虛擬伺服器]>[虛擬伺服器清單]>[建立]

  2. 輸入虛擬伺服器的 [名稱]

  3. 對於 [目的地位址/遮罩],選取 [主機]

  4. 輸入要指派給 BIG-IP 以接收用戶端流量的未使用 IP IPv4 或 IPv6。

  5. 對於 [服務連接埠],選取 [連接埠]、[443] 和 [HTTPS]

    螢幕擷取畫面:[名稱]、[目的地位址/遮罩] 和 [服務連接埠] 的項目。

  6. 對於 [HTTP 設定檔 (用戶端)],選取 [http]

  7. 對於 [SSL 設定檔 (用戶端)],選取您建立的用戶端 SSL 設定檔,或保留預設值以進行測試。

    螢幕擷取畫面:[HTTP 設定檔 (用戶端)] 和 [SSL 設定檔 (用戶端)] 的項目。

  8. 對於 [來源位址轉換],選取 [自動對應]

    螢幕擷取畫面:[來源位址轉換] 選項。

  9. 對於 [存取原則],選取稍早建立的 [存取設定檔]。 此動作會將 Microsoft Entra SAML 預先驗證設定檔和標頭 SSO 原則繫結至虛擬伺服器。

  10. 對於 [每個要求原則],選取 [SSO_Headers]

螢幕擷取畫面:[存取設定檔] 和 [每個要求原則] 的項目。

  1. 對於 [預設集區],選取您建立的後端集區物件。
  2. 選取 [完成]

螢幕擷取畫面:[資源] 底下的 [預設集區] 選項。

工作階段管理

使用 BIG-IP 工作階段管理設定來定義使用者工作階段終止或接續的條件。 請使用 [存取原則] > [存取設定檔] 建立原則。 從清單中選取應用程式。

關於 SLO 功能,Microsoft Entra ID 中的 SLO URI 可確保 IdP 從 MyApps 入口網站起始的登出,會終止用戶端與 BIG-IP APM 之間的工作階段。 匯入的應用程式同盟 metadata.xml 會為 APM 提供適用於 SP 啟始登出的 Microsoft Entra SAML 登出端點。因此,請讓 APM 知道使用者何時登出。

如果沒有 BIG-IP 入口網站,使用者就無法指示 APM 登出。如果使用者登出應用程式,則 BIG-IP 無法察覺該動作。 可以透過 SSO 恢復應用程式工作階段。 因此,需要仔細考慮 SP 起始的登出。

若要確保工作階段安全地終止,請將 SLO 功能新增至應用程式的 [登出] 按鈕。 啟用此功能可將用戶端重新導向至 Microsoft Entra SAML 登出端點。 對於您租用戶的 SAML 登出端點,請前往 [應用程式註冊] > [端點]

若無法變更應用程式,請啟用 BIG-IP 以接聽應用程式登出呼叫並觸發 SLO。 若要深入了解:

部署

  1. 選取 [部署] 來認可設定。
  2. 確認應用程式出現在您的租用戶中。
  3. 該應用程式已發佈,並透過 SHA 使用其 URL 或 Microsoft 入口網站存取。

Test

以使用者身分執行下列測試。

  1. 選取應用程式外部 URL,或在 MyApps 入口網站中選取應用程式圖示。

  2. 對 Microsoft Entra ID 進行驗證。

  3. 重新導向至應用程式的 BIG-IP 虛擬伺服器,並使用 SSO 登入。

  4. 插入的標頭輸出由標頭式應用程式顯示。

    螢幕擷取畫面:UPN、員工識別碼和群組授權之類的伺服器變數。

為了提高安全性,請封鎖對應用程式的直接存取,並強制執行透過 BIG-IP 的路徑。

疑難排解

使用下列指引進行疑難排解。

記錄詳細程度

BIG-IP 記錄包含可協助隔離驗證和 SSO 問題的資訊。 提高記錄詳細程度層級:

  1. 前往 [存取原則] > [概觀] > [事件記錄]
  2. 選取設定
  3. 選取已發佈應用程式的資料列。
  4. 選取 [編輯]>[存取系統記錄]
  5. 從 SSO 清單中,選取 [偵錯]
  6. 選取 [確定]。
  7. 重現問題。
  8. 檢閱記錄。
  9. 完成後,請還原設定。

BIG-IP 錯誤訊息

如果在重新導向之後顯示 BIG-IP 錯誤,則問題可能與從 Microsoft Entra ID 到 BIG-IP 的 SSO 有關。

  1. 瀏覽至 [存取原則] > [概觀]
  2. 選取 [存取報告]
  3. 執行過去一小時的報告。
  4. 檢閱記錄以取得線索。
  5. 對於您的工作階段,選取 [檢視工作階段變數] 連結。
  6. 確認 APM 收到來自 Microsoft Entra ID 的預期宣告。

沒有 BIG-IP 錯誤訊息

如果沒有顯示 BIG-IP 錯誤訊息,則問題可能與從 BIG-IP 到後端應用程式的 SSO 有關。

  1. 瀏覽至 [存取原則] > [概觀]
  2. 選取 [作用中工作階段]
  3. 選取作用中工作階段的連結。
  4. 選取 [檢視變數] 連結以判定任何 SSO 問題。
  5. 確認 BIG-IP APM 失敗或成功,以取得正確的使用者和網域識別碼。

深入了解:

資源