共用方式為


教學課程:使用 Azure Active Directory B2C 和 F5 BIG-IP 為應用程式啟用安全的混合式存取

這很重要

自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解

瞭解如何整合 Azure Active Directory B2C (Azure AD B2C) 與 F5 BIG-IP 存取原則管理員 (APM)。 您可以使用 Azure AD B2C 預先驗證、條件式存取(CA)和單一登錄(SSO),透過 BIG-IP 安全性安全地向因特網公開舊版應用程式。 F5 Inc. 著重於連線服務的傳遞、安全性、效能和可用性,包括運算、記憶體和網路資源。 它提供硬體、模組化的軟體和雲端就緒虛擬設備解決方案。

將 F5 BIG-IP 應用程式傳遞控制器 (ADC) 部署為專用網與因特網之間的安全閘道。 提供應用層級檢查和自訂訪問控制的功能。 如果部署為反向代理,請使用 BIG-IP,透過 APM 管理的同盟身分識別存取層,啟用對商務應用程式的安全的混合存取。

移至 f5.com 資源和白皮書,以取得: 透過 Microsoft Entra ID 輕鬆設定所有應用程式的安全存取

先決條件

若要開始使用,您需要:

案例描述

下列情境是以標頭為基礎,但您可以使用這些方法來達成 Kerberos SSO。

在此案例中,內部應用程式的存取仰賴從舊版訊息代理程序系統接收 HTTP 授權標頭。 銷售專員可以導向至個別的內容區域。 服務必須擴充至更廣泛的取用者基礎。 應用程式會針對取用者驗證選項升級,或被取代。

在理想情況下,應用程式升級支援使用新式控制平面進行直接管理和控管。 不過,現代化所需的時間和精力會產生成本並可能導致停機時間。 相反地,在公用因特網與內部 Azure 虛擬網路 (VNet) 之間部署 BIG-IP Virtual Edition (VE),以網關存取 Azure AD B2C。 應用程式前面的 BIG-IP 可讓服務與 Azure AD B2C 預先驗證和標頭型 SSO 重疊,以改善應用程式安全性狀態。

安全的混合式存取解決方案具有下列元件:

  • 應用程式 - 受 Azure AD B2C 保護的後端服務,並 BIG-IP 安全的混合式存取
  • Azure AD B2C - 識別提供者 (IdP) 和 OpenID Connect (OIDC) 授權伺服器,可驗證使用者認證、多重要素驗證和 SSO 至 BIG-IP APM
  • BIG-IP - 應用程式的反向 Proxy。 BIG-IP APM 是 OIDC 用戶端,會將驗證委派給 OIDC 授權伺服器,再將標頭型 SSO 委派給後端服務。

下圖說明此案例的服務提供者 (SP) 起始流程。

服務提供者起始流程的螢幕快照。

  1. 用戶連線到應用程式端點。 BIG-IP 是服務提供者。
  2. BIG-IP APM OIDC 用戶端會將使用者重新導向至 Azure AD B2C 租使用者端點 OIDC 授權伺服器
  3. Azure AD B2C 租用戶會預先驗證使用者,並套用條件式存取原則
  4. Azure AD B2C 會將使用者重新導向回具有授權碼的SP
  5. OIDC 用戶端會要求授權伺服器交換標識元令牌的授權碼
  6. BIG-IP APM 會授與使用者存取權,並將 HTTP 標頭插入轉送至應用程式的用戶端要求

Azure AD B2C 設定

若要使用 Azure AD B2C 驗證啟用 BIG-IP,您應該使用具有使用者流程或自訂原則的 Azure AD B2C 租用戶。

請參閱 教學課程:在 Azure AD B2C 中建立使用者流程和自定義原則

建立自訂屬性

從 Azure AD B2C 用戶物件、同盟 IdP、API 連接器或用戶註冊取得自定義屬性。 將屬性包含在前往應用程式的令牌中。

舊版應用程式需要特定屬性,因此請在您的使用者流程中包含它們。 您可以將它們取代為應用程式所需的屬性。 或者,如果您要依照指示來設定測試應用程式,則使用任何標頭。

  1. 以至少 B2C IEF 原則管理員身分登入 Azure 入口網站。
  2. 在左側窗格中,選取 [用戶屬性]。
  3. 選取 [新增 ] 以建立兩個自定義屬性。
  4. 針對代理程序識別符,選取字串 資料類型
  5. 針對代理程式 Geo,選取 [字串 資料類型]。

將特性新增至使用者操作流程

  1. 在左側功能表中,流覽至 [ 原則>使用者流程]。
  2. 選取您的原則,例如 B2C_1_SignupSignin
  3. 選取 [用戶屬性]。
  4. 新增這兩個自定義屬性。
  5. 新增 [顯示名稱] 屬性。 這些屬性會在用戶註冊期間收集。
  6. 選取 應用程式宣告
  7. 新增這兩個自定義屬性。
  8. 新增 顯示名稱。 這些屬性會移至 BIG-IP。
  9. 選取執行使用者流程
  10. 在使用者流程選單中,檢查左側導覽列上的已定義屬性提示。

深入瞭解 :教學課程:在 Azure AD B2C 中建立使用者流程和自定義原則

Azure AD B2C 同盟

同盟 BIG-IP 和 Azure AD B2C 以進行相互信任。 將 Azure AD B2C 租使用者中的 BIG-IP 註冊為 OIDC 應用程式。

  1. 在入口網站中,選取 [ 應用程式註冊>][新增註冊]。
  2. 輸入應用程式 名稱,例如 HeaderApp1
  3. 支援的帳戶類型下,選取 任何身分提供者或組織目錄中的帳戶(用於驗證具有使用者流程的使用者)
  4. [重新導向 URI] 底下,選取 [Web]。
  5. 輸入受保護的伺服器公共 FQDN。
  6. 輸入路徑。
  7. 保留其餘選項。
  8. 選取 註冊
  9. 流覽至 [憑證與秘密>+ 新增用戶端密碼]。
  10. 輸入描述性名稱
  11. 輸入 BIG-IP 使用的密鑰的 TTL。
  12. 請注意 BIG-IP 組態的客戶端密碼。

重新導向 URI 是 BIG-IP 端點。 驗證之後,授權伺服器 (Azure AD B2C) 會將用戶傳送至端點。

深入瞭解: 教學課程:在適用於 Azure AD B2C 的 Azure AD B2C 中註冊 Web 應用程式

BIG-IP 設定

針對 BIG-IP 組態,請使用引導式設定 v.7/8。 工作流程架構是針對存取拓撲量身打造,可完成快速的Web服務發佈。

引導式配置版本

  1. 若要確認版本,請使用系統管理員帳戶登入 BIG-IP Web 組態。
  2. 移至存取>引導式設定
  3. 版本號碼會出現在右上角。

若要升級引導式設定,請至 my.f5.com 並參考 K85454683:在 BIG-IP 系統上升級 F5 BIG-IP 引導式設定

SSL 設定檔

使用已配置用戶端 SSL 設定檔的 BIG-IP 來保護透過 TLS 的用戶端流量。 匯入符合您的應用程式公開 URL 所使用的網域名稱的憑證。 建議您使用公用證書頒發機構單位,但您可以使用 BIG-IP 自我簽署憑證進行測試。

若要在 BIG-IP VE 中新增和管理憑證,請移至 BIG-IP 系統:SSL 管理 techdocs.f5.com

引導式設定

  1. 若要啟動部署精靈,請在 Web 設定中 ,移至存取>引導式設定
  2. 選取 聯盟>F5 作為 OAuth 客戶端和資源伺服器
  3. 觀察此案例的流程摘要。
  4. 選取 下一步
  5. 精靈隨即啟動。

OAuth 屬性

在下列各節中,定義屬性,以啟用 BIG-IP APM 與 OAuth 授權伺服器、Azure AD B2C 租用戶之間的同盟。 OAuth 會在整個 BIG-IP 組態中參考。 解決方案使用 OIDC,這是 OAuth 2.0 通訊協定上的識別層。 OIDC 用戶端會驗證使用者身分,並取得其他個人資料資訊。

組態名稱

組態顯示名稱有助於區分引導式設定中的部署組態。 您無法變更名稱,而且只會出現在 [引導式組態] 檢視中。

模式

BIG-IP APM 是 OIDC 用戶端,因此請選取 [用戶端] 選項。

DNS 解析程式

指定的目標必須解析 Azure AD B2C 端點的公用 IP 位址。 選取公用 DNS 解析程式,或建立新的解析程式。

提供者設定

將 Azure AD B2C 設定為 OAuth2 IdP。 引導式組態具有 Azure AD B2C 範本,但缺少某些範圍。

新增提供者並加以設定:

OAuth 一般屬性

性能 說明
OAuth 提供者類型 習慣
選擇 OAuth 提供者 建立新的帳戶,或使用 OAuth 驗證提供者
名稱 B2C IdP 的顯示名稱。 登入時,此名稱會顯示為用戶作為提供者選項
令牌類型 JSON Web 權杖

OAuth 原則設定

性能 說明
影響範圍 保留空白。 會自動新增使用者登入的 OpenID 範圍
授與類型 授權碼
啟用 OpenID Connect 選取選項以將 APM OAuth 用戶端置於 OIDC 模式
流程類型 授權碼

OAuth 提供者設定

下列 OpenID URI 指的是 OIDC 用戶端用來發現 IdP 資訊的中繼資料端點,例如簽署憑證輪替。

  1. 找出 Azure AD B2C 租使用者的元數據端點。瀏覽至 應用程式註冊>端點
  2. 複製 Azure AD B2C OpenID Connect 元數據檔 URI。 例如: https://wacketywackb2c .b2clogin.com/<tenantname>.onmicrosoft.com/<policyname>/v2.0/.well-known/openid-configuration
  3. 使用您的屬性更新 URI: https://<tenantname>.b2clogin.com/WacketywackB2C.onmicrosoft.com/B2C_1_SignUpIn/v2.0/.well-known/openid-configuration
  4. 將 URI 貼到瀏覽器中。
  5. 檢視 Azure AD B2C 租用戶的 OIDC 元數據。
房產 說明
觀眾 代表 Azure AD B2C 租戶中 BIG-IP 的應用程式用戶端識別碼
驗證 URI B2C OIDC 元數據中的授權端點
令牌 URI 您的 Azure AD B2C 元數據中的令牌端點
使用者信息請求 URI 保留空白。 Azure AD B2C 不支援此功能
OpenID URI 您所建立的 OpenID URI 元資料端點
忽略過期的憑證驗證 保持未核取狀態
允許自我簽署的 JWK 設定憑證 檢查
受信任的 CA 憑證套件 請選取 ca-bundle.crt 檔案,以使用 F5 預設的信任授權單位。
探索間隔 提供 BIG-IP 的間隔,以查詢 Azure AD B2C 租用者是否有更新。 AGC 16.1 0.0.19 版中的最小間隔為 5 分鐘。

OAuth 伺服器設定

針對 OIDC 授權伺服器,成為您的 Azure AD B2C 租使用者。

房產 說明書
用戶端識別碼 在 Azure AD B2C 租戶中代表 BIG-IP 的應用程式客戶端 ID
用戶端密碼 應用程式客戶端密碼
用戶端伺服器 SSL 設定檔 設定 SSL 配置檔以確保 APM 透過 TLS 與 Azure AD B2C IdP 通訊。 選取預設 伺服器SSL

OAuth 要求設定

BIG-IP 在其預先設定的要求集中必須有 Azure AD B2C 要求。 不過,要求的格式不正確,而且遺漏重要的參數。 因此,我們會手動建立它們。

令牌要求:已啟用

房產 說明
選擇 OAuth 要求 新建
HTTP 方法 郵件
啟用標頭 未勾選
啟用參數 已核對
參數 參數名稱 參數值
client_id (客戶識別碼) client_id (客戶識別碼) N/A
隨機數 隨機數 N/A
重新導向_URI 重新導向_URI N/A
範圍 範圍 N/A
response_type(回應類型) response_type(回應類型) N/A
用戶端密鑰 用戶端密鑰 N/A
習慣 grant_type (授權類型) 授權碼

驗證重新導向要求:已啟用

房產 說明
選擇 OAuth 要求 新建
HTTP 方法 擷取
提示類型 沒有
啟用標頭 未勾選
啟用參數 已核對
參數 參數名稱 參數值
client_id (客戶識別碼) client_id (客戶識別碼) N/A
重新導向_URI 重新導向_URI N/A
response_type(回應類型) response_type(回應類型) N/A
範圍 範圍 N/A
隨機數 隨機數 N/A

令牌重新整理要求已停用 您可以視需要啟用和設定。

OpenID UserInfo 要求:在全域 Azure AD B2C 租使用者中已停用且不支援。

虛擬伺服器屬性

建立 BIG-IP 虛擬伺服器,以攔截受安全混合式存取保護之後端服務的外部用戶端要求。 將虛擬伺服器指派一個映射到代表應用程式的 BIG-IP 服務端點的公用 DNS 記錄的 IP。 如果有的話,請使用虛擬伺服器,否則請提供下列屬性。

房產 說明
目的地位址 成為後端應用程式 BIG-IP 服務端點的私人或公用IP
服務埠 HTTPS
啟用轉發埠 選取 ,讓用戶會自動從 HTTP 重新導向至 HTTPs
重新導向端口 HTTP 協定
用戶端 SSL 設定檔 將預先定義的 clientssl 配置檔與具有 SSL 憑證的設定檔交換。 您可以使用預設設定檔進行測試。 但可能會導致瀏覽器警示。

池屬性

後端服務會作為一個資源池出現在 BIG-IP 中,其中有一或多個應用程式伺服器,虛擬伺服器將輸入流量導向這些應用程式伺服器。 選取集區,否則請建立新的集區。

房產 說明
負載平衡方法 選擇循環輪替
集區伺服器 後端應用程式的內部IP
港口 後端應用程式的服務埠

備註

請確定 BIG-IP 對集區伺服器地址具有可視性。

SSO 設定

BIG-IP 支援 SSO 選項,但在 OAuth 用戶端模式中,引導式設定僅限於 Kerberos 或 HTTP 標頭。 啟用 SSO,並使用 APM 的下列資訊,將定義的輸入屬性對應至輸出標頭。

房產 說明
標題操作 插入
標頭名稱 名稱
標題值 %{session.oauth.client.last.id_token.name}
標題操作 插入
標頭名稱 agentid
標題值 %{session.oauth.client.last.id_token.extension_AgentGeo}

備註

大括號內的 APM 會話變數會區分大小寫。 當 Azure AD B2C 屬性名稱以 AgentID 傳送時,輸入 agentid 會導致屬性對應失敗。 以小寫定義屬性。 在 Azure AD B2C 中,使用者流程會使用入口網站中的屬性名稱,提示使用者輸入更多屬性。 因此,請使用句子大小寫,而不是小寫。

單一登錄設定的螢幕快照,包括類型和標頭。

自訂屬性

自定義使用者在 APM 存取原則流程中看到的畫面語言和外觀。 編輯畫面訊息和提示、變更螢幕配置、色彩、影像,以及當地語系化標題、描述和訊息。

在 [ 表單標題 ] 文字欄位中,以您想要的名稱取代 F5 Networks 字串。

會話管理屬性

使用 BIG-IP 工作階段管理設定來定義終止工作階段或允許它們繼續的條件。 設定使用者和IP位址和錯誤頁面的限制。 我們建議實作單一註銷 (SLO),以安全地終止會話,降低未經授權的存取風險。

部署設定

選取 [部署 ] 來認可設定,並建立 BIG-IP 和 APM 物件,以保護應用程式的混合式存取。 該應用程式會顯示為條件式存取中的目標資源。 為了提高安全性,請封鎖直接存取應用程式,強制所有流量經由 BIG-IP 路徑進行。

深入瞭解: 適用於 Azure AD B2C 的 Identity Protection 和條件式存取

測試登入註冊流程

  1. 以使用者身分,移至應用程式外部URL。
  2. BIG-IP 的 OAuth 用戶端登入頁面隨即出現。
  3. 使用授權碼授與登入。 若要移除此步驟,請參閱 補充組態 一節。
  4. 註冊並驗證您的 Azure AD B2C 租戶。

下列影像是使用者登入對話框和登入歡迎頁面。

使用者登入對話框的螢幕快照。

登入歡迎頁面的螢幕快照。

為了提高安全性,請封鎖直接存取應用程式,強制所有流量經由 BIG-IP 路徑進行。

補充組態

單一登出 (SLO)

Azure AD B2C 支援識別提供者 (IdP) 和應用程式註銷。請參閱 單一註銷

若要達成 SLO,請啟用您的應用程式的註銷功能,讓其呼叫 Azure AD B2C 註銷端點。 然後,Azure AD B2C 會進行最終的重新導向至 BIG-IP。 此動作可確保使用者應用程式 APM 會話終止。

另一個 SLO 程式是在選取應用程式 [註銷 ] 按鈕時,讓 BIG-IP 接聽要求。 偵測到要求時,它會呼叫 Azure AD B2C 註銷端點。 此方法會排除對應用程式進行變更。

若要深入瞭解 iRules BIG-IP,請移至 K42052145 的 support.f5.com:根據 URI 參考的檔名設定自動會話終止(註銷)。

備註

無論採用何種方法,請確保 Azure AD B2C 租用戶熟悉 APM 登出端點。

  1. 在入口網站中,導航至「管理>指令清單」。
  2. 找出 logoutUrl 屬性。 它會讀取 null。
  3. 在 APM 中新增註銷的 URI:https://<mysite.com>/my.logout.php3

備註

<mysite.com> 是標頭型應用程式的 BIG-IP FQDN。

優化登入流程

若要改善使用者登入體驗,請隱藏Microsoft Entra 預先驗證之前出現的 OAuth 使用者登入提示。

  1. 流覽至 [存取>引導式設定]。

  2. 在數據列最右邊,選取 掛鎖 圖示。

  3. 標頭型應用程式會解除鎖定嚴格的設定。

    狀態、名稱和類型輸入的螢幕快照;也是掛鎖圖示。

解除鎖定嚴格設定可防止使用精靈 UI 進行變更。 BIG-IP 物件會與已發佈的應用程式實例相關聯,且會開啟以進行直接管理。

  1. 流覽至存取>配置檔/原則>存取配置檔(每一會話原則)。

  2. 針對應用程式原則物件,在 [Per-Session 原則 ] 資料行中,選取 [ 編輯]。

    [存取原則] 底下的 [編輯] 選項螢幕快照,位於 [存取] 對話方塊。

  3. 若要刪除 OAuth 登入頁面 原則物件,請選取 [X]。

  4. 在命令提示字元中,連接到先前的節點。

    OAuth 登入頁面原則物件上 X 選項的螢幕快照。

  5. 在左上角,選取 [ 套用存取原則]。

  6. 關閉 [視覺效果編輯器] 索引標籤。

當您嘗試連線到應用程式時,Azure AD B2C 登入頁面隨即出現。

備註

如果您重新啟用嚴格模式並部署配置,則會覆蓋在引導式配置UI以外進行的設定。 手動建立生產服務的組態物件,以實作此案例。

故障排除

如果無法存取受保護的應用程式,請使用下列疑難解答指引。

記錄詳細程度

BIG-IP 記錄具有協助隔離驗證和單一登入 (SSO) 問題的資訊。 提高記錄詳細程度層級。

  1. 移至 [存取原則]>[概觀]>[事件記錄]>[設定]
  2. 選取已發佈應用程式的數據列,然後 編輯>存取系統記錄
  3. 從 SSO 清單中,選取 [偵錯]
  4. 請選擇 [確定]
  5. 檢閱記錄之前,請重現您的問題。

完成時,請還原先前的設定。

BIG-IP 錯誤訊息

如果您在 Azure AD B2C 驗證之後看到 BIG-IP 錯誤訊息,此問題可能與從 Microsoft Entra 識別碼到 BIG-IP 的 SSO 有關。

  1. 前往 存取>概觀>存取報表
  2. 生成過去一小時的報表
  3. 檢閱記錄以取得線索。
  4. 選取 [ 檢視會話變數] 連結。
  5. 判斷 APM 是否收到預期的 Microsoft Entra 宣告。

沒有 BIG-IP 錯誤訊息

如果沒有出現 BIG-IP 錯誤訊息,問題可能與後端要求相關,或從 BIG-IP 到應用程式的 SSO。

  1. 移至存取政策>總覽>使用中工作階段
  2. 請選擇作用中工作階段的連結。
  3. 選取 [ 檢視變數] 連結。
  4. 檢查以確定根本原因,尤其是當 BIG-IP APM 取得錯誤的會話屬性時。
  5. 使用應用程式記錄來協助瞭解它是否以標頭的形式收到屬性。

引導配置 v8 已知問題

如果使用引導式設定 v8,已知問題會在成功進行 Azure AD B2C 驗證之後產生下列錯誤。 問題可能是 AGC 在部署期間未啟用自動 JWT 設定。 APM 無法取得目前的令牌簽署金鑰。 F5 工程正在調查根本原因。

拒絕存取錯誤訊息的螢幕快照。

相同的存取記錄檔會提供詳細數據。

記錄訊息詳細數據的螢幕快照。

手動啟用設定

  1. 流覽至 [存取>引導式設定]。
  2. 在標頭型應用程式的數據列最右邊,選取 掛鎖
  3. 流覽至 存取>聯盟>OAuth 客戶端/資源伺服器>提供者
  4. 選取 Azure AD B2C 設定的提供者。
  5. 勾選 使用自動 JWT 方塊。
  6. 選取 探索
  7. 選取 [儲存]。
  8. [ 金鑰 (JWT)] 字段具有來自 OpenID URI 元數據的令牌簽署憑證密鑰標識碼 (KID)。
  9. 在左上角,選取 [ 套用存取原則]。
  10. 選取 ,然後套用

如需詳細資訊,請前往 techdocs.f5.com 以獲取適用於 OAuth 用戶端和資源伺服器的疑難解答秘訣。