這很重要
自 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 輕鬆設定所有應用程式的安全存取
先決條件
若要開始使用,您需要:
- Azure 訂用帳戶
- 如果您沒有帳戶,請取得 Azure 免費帳戶
- 連結至 Azure 訂用帳戶的 Azure AD B2C 租戶
- Azure 上的 BIG-IP 或已部署的 BIG-IP 測試虛擬環境(VE)
- 下列任一個 F5 BIG-IP 許可證:
- F5 BIG-IP® 最佳套件組合
- F5 BIG-IP Access Policy Manager™ 獨立授權
- F5 BIG-IP F5 BIG-IP® 本機流量管理員™(LTM)上的 BIG-IP 存取原則管理員™ 擴充功能授權
- 90 天 BIG-IP 完整功能試用版授權
- 標頭型 Web 應用程式或用於測試的 IIS 應用程式
- 請參閱 設定 IIS 應用程式
- 透過 HTTPS 發佈服務的 SSL 憑證,或在測試時使用預設值
- 請參閱 SSL 設定檔
案例描述
下列情境是以標頭為基礎,但您可以使用這些方法來達成 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) 起始流程。
- 用戶連線到應用程式端點。 BIG-IP 是服務提供者。
- BIG-IP APM OIDC 用戶端會將使用者重新導向至 Azure AD B2C 租使用者端點 OIDC 授權伺服器
- Azure AD B2C 租用戶會預先驗證使用者,並套用條件式存取原則
- Azure AD B2C 會將使用者重新導向回具有授權碼的SP
- OIDC 用戶端會要求授權伺服器交換標識元令牌的授權碼
- BIG-IP APM 會授與使用者存取權,並將 HTTP 標頭插入轉送至應用程式的用戶端要求
Azure AD B2C 設定
若要使用 Azure AD B2C 驗證啟用 BIG-IP,您應該使用具有使用者流程或自訂原則的 Azure AD B2C 租用戶。
請參閱 教學課程:在 Azure AD B2C 中建立使用者流程和自定義原則
建立自訂屬性
從 Azure AD B2C 用戶物件、同盟 IdP、API 連接器或用戶註冊取得自定義屬性。 將屬性包含在前往應用程式的令牌中。
舊版應用程式需要特定屬性,因此請在您的使用者流程中包含它們。 您可以將它們取代為應用程式所需的屬性。 或者,如果您要依照指示來設定測試應用程式,則使用任何標頭。
- 以至少 B2C IEF 原則管理員身分登入 Azure 入口網站。
- 在左側窗格中,選取 [用戶屬性]。
- 選取 [新增 ] 以建立兩個自定義屬性。
- 針對代理程序識別符,選取字串 資料類型。
- 針對代理程式 Geo,選取 [字串 資料類型]。
將特性新增至使用者操作流程
- 在左側功能表中,流覽至 [ 原則>使用者流程]。
- 選取您的原則,例如 B2C_1_SignupSignin。
- 選取 [用戶屬性]。
- 新增這兩個自定義屬性。
- 新增 [顯示名稱] 屬性。 這些屬性會在用戶註冊期間收集。
- 選取 應用程式宣告。
- 新增這兩個自定義屬性。
- 新增 顯示名稱。 這些屬性會移至 BIG-IP。
- 選取執行使用者流程。
- 在使用者流程選單中,檢查左側導覽列上的已定義屬性提示。
深入瞭解 :教學課程:在 Azure AD B2C 中建立使用者流程和自定義原則
Azure AD B2C 同盟
同盟 BIG-IP 和 Azure AD B2C 以進行相互信任。 將 Azure AD B2C 租使用者中的 BIG-IP 註冊為 OIDC 應用程式。
- 在入口網站中,選取 [ 應用程式註冊>][新增註冊]。
- 輸入應用程式 名稱,例如 HeaderApp1。
- 在 支援的帳戶類型下,選取 任何身分提供者或組織目錄中的帳戶(用於驗證具有使用者流程的使用者)。
- 在 [重新導向 URI] 底下,選取 [Web]。
- 輸入受保護的伺服器公共 FQDN。
- 輸入路徑。
- 保留其餘選項。
- 選取 註冊。
- 流覽至 [憑證與秘密>+ 新增用戶端密碼]。
- 輸入描述性名稱
- 輸入 BIG-IP 使用的密鑰的 TTL。
- 請注意 BIG-IP 組態的客戶端密碼。
重新導向 URI 是 BIG-IP 端點。 驗證之後,授權伺服器 (Azure AD B2C) 會將用戶傳送至端點。
深入瞭解: 教學課程:在適用於 Azure AD B2C 的 Azure AD B2C 中註冊 Web 應用程式 。
BIG-IP 設定
針對 BIG-IP 組態,請使用引導式設定 v.7/8。 工作流程架構是針對存取拓撲量身打造,可完成快速的Web服務發佈。
引導式配置版本
- 若要確認版本,請使用系統管理員帳戶登入 BIG-IP Web 組態。
- 移至存取>引導式設定。
- 版本號碼會出現在右上角。
若要升級引導式設定,請至 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。
引導式設定
- 若要啟動部署精靈,請在 Web 設定中 ,移至存取>引導式設定。
- 選取 聯盟>F5 作為 OAuth 客戶端和資源伺服器。
- 觀察此案例的流程摘要。
- 選取 下一步。
- 精靈隨即啟動。
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 資訊的中繼資料端點,例如簽署憑證輪替。
- 找出 Azure AD B2C 租使用者的元數據端點。瀏覽至 應用程式註冊>端點。
- 複製 Azure AD B2C OpenID Connect 元數據檔 URI。 例如:
https://wacketywackb2c .b2clogin.com/<tenantname>.onmicrosoft.com/<policyname>/v2.0/.well-known/openid-configuration
。 - 使用您的屬性更新 URI:
https://<tenantname>.b2clogin.com/WacketywackB2C.onmicrosoft.com/B2C_1_SignUpIn/v2.0/.well-known/openid-configuration
。 - 將 URI 貼到瀏覽器中。
- 檢視 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 和條件式存取
測試登入註冊流程
- 以使用者身分,移至應用程式外部URL。
- BIG-IP 的 OAuth 用戶端登入頁面隨即出現。
- 使用授權碼授與登入。 若要移除此步驟,請參閱 補充組態 一節。
- 註冊並驗證您的 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 登出端點。
- 在入口網站中,導航至「管理>指令清單」。
- 找出
logoutUrl
屬性。 它會讀取 null。 - 在 APM 中新增註銷的 URI:
https://<mysite.com>/my.logout.php3
備註
<mysite.com>
是標頭型應用程式的 BIG-IP FQDN。
優化登入流程
若要改善使用者登入體驗,請隱藏Microsoft Entra 預先驗證之前出現的 OAuth 使用者登入提示。
流覽至 [存取>引導式設定]。
在數據列最右邊,選取 掛鎖 圖示。
標頭型應用程式會解除鎖定嚴格的設定。
解除鎖定嚴格設定可防止使用精靈 UI 進行變更。 BIG-IP 物件會與已發佈的應用程式實例相關聯,且會開啟以進行直接管理。
流覽至存取>配置檔/原則>存取配置檔(每一會話原則)。
針對應用程式原則物件,在 [Per-Session 原則 ] 資料行中,選取 [ 編輯]。
若要刪除 OAuth 登入頁面 原則物件,請選取 [X]。
在命令提示字元中,連接到先前的節點。
在左上角,選取 [ 套用存取原則]。
關閉 [視覺效果編輯器] 索引標籤。
當您嘗試連線到應用程式時,Azure AD B2C 登入頁面隨即出現。
備註
如果您重新啟用嚴格模式並部署配置,則會覆蓋在引導式配置UI以外進行的設定。 手動建立生產服務的組態物件,以實作此案例。
故障排除
如果無法存取受保護的應用程式,請使用下列疑難解答指引。
記錄詳細程度
BIG-IP 記錄具有協助隔離驗證和單一登入 (SSO) 問題的資訊。 提高記錄詳細程度層級。
- 移至 [存取原則]>[概觀]>[事件記錄]>[設定]。
- 選取已發佈應用程式的數據列,然後 編輯>存取系統記錄。
- 從 SSO 清單中,選取 [偵錯]。
- 請選擇 [確定]。
- 檢閱記錄之前,請重現您的問題。
完成時,請還原先前的設定。
BIG-IP 錯誤訊息
如果您在 Azure AD B2C 驗證之後看到 BIG-IP 錯誤訊息,此問題可能與從 Microsoft Entra 識別碼到 BIG-IP 的 SSO 有關。
- 前往 存取>概觀>存取報表。
- 生成過去一小時的報表
- 檢閱記錄以取得線索。
- 選取 [ 檢視會話變數] 連結。
- 判斷 APM 是否收到預期的 Microsoft Entra 宣告。
沒有 BIG-IP 錯誤訊息
如果沒有出現 BIG-IP 錯誤訊息,問題可能與後端要求相關,或從 BIG-IP 到應用程式的 SSO。
- 移至存取政策>總覽>使用中工作階段。
- 請選擇作用中工作階段的連結。
- 選取 [ 檢視變數] 連結。
- 檢查以確定根本原因,尤其是當 BIG-IP APM 取得錯誤的會話屬性時。
- 使用應用程式記錄來協助瞭解它是否以標頭的形式收到屬性。
引導配置 v8 已知問題
如果使用引導式設定 v8,已知問題會在成功進行 Azure AD B2C 驗證之後產生下列錯誤。 問題可能是 AGC 在部署期間未啟用自動 JWT 設定。 APM 無法取得目前的令牌簽署金鑰。 F5 工程正在調查根本原因。
相同的存取記錄檔會提供詳細數據。
手動啟用設定
- 流覽至 [存取>引導式設定]。
- 在標頭型應用程式的數據列最右邊,選取 掛鎖。
- 流覽至 存取>聯盟>OAuth 客戶端/資源伺服器>提供者。
- 選取 Azure AD B2C 設定的提供者。
- 勾選 使用自動 JWT 方塊。
- 選取 探索。
- 選取 [儲存]。
- [ 金鑰 (JWT)] 字段具有來自 OpenID URI 元數據的令牌簽署憑證密鑰標識碼 (KID)。
- 在左上角,選取 [ 套用存取原則]。
- 選取 ,然後套用。
如需詳細資訊,請前往 techdocs.f5.com 以獲取適用於 OAuth 用戶端和資源伺服器的疑難解答秘訣。