iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0
Software Development

從登入到授權-現代軟體的身分架構指南系列 第 24 篇

Day 24|從 Azure AD B2C 到 Entra External ID:產品定位與遷移方式

  • 分享至 

  • xImage
  •  

前言

前幾天我們先從 Passkey、FIDO2 與 WebAuthn 說明使用者如何安全登入,再透過 RBAC、ABAC、ACL 與 ReBAC 整理系統如何判斷「登入後可以做什麼」。不過,這些協定與授權模型要真正落實到網站或 App,還需要一套身分平台來管理帳號、註冊、登入、密碼重設與第三方帳號整合。

在 Microsoft 的產品中,Azure AD B2C 長期負責網站與 App 的顧客身分管理;但 Microsoft 已停止向新客戶銷售 B2C,並將後續產品發展重心轉向 Entra External ID。對使用 Microsoft 生態系的團隊來說,接下來自然會遇到幾個問題:既有 B2C 還能不能使用?External ID 與 B2C 有什麼差異?如果未來決定遷移,原本的顧客帳號與密碼又要怎麼處理?

因此,本篇會整理 Azure AD B2C 與 Entra External ID 的目前狀態、功能差異及遷移方式。

今天內容涵蓋:

  1. B2C 與 External ID:目前狀態與關係
  2. Azure AD B2C 的功能與限制
  3. Entra External ID:登入方式與 B2C 差異
  4. 從 B2C 搬到 External ID:帳號與密碼怎麼處理

一、B2C 與 External ID:目前狀態與關係

Azure AD B2C 與 Microsoft Entra External ID 都屬於 CIAM(Customer Identity and Access Management,顧客身分與存取管理) 平台,用來處理網站或 App 的顧客註冊、登入與帳號管理。不過,兩者目前的產品狀態並不相同。

截至 2026 年 9 月,Azure AD B2C 仍持續提供給既有客戶使用,但已不再向新客戶銷售;Microsoft 後續的 CIAM 產品發展則以 Entra External ID 為主。

Azure AD B2C 目前仍可供既有客戶使用

  • 新客戶: 自 2025 年 5 月 1 日起,已無法購買 Azure AD B2C。
  • 既有客戶: 仍可繼續使用 Azure AD B2C,也能建立新的 tenant 與 User Flow;新建立的 tenant 僅能使用 B2C P1。
  • B2C P2: 已於 2026 年 3 月 15 日停止服務,但這不代表整個 Azure AD B2C 同時停止。
  • 既有服務承諾: SLA、安全性更新與合規承諾仍然維持。Microsoft 表示將至少支援 Azure AD B2C 至 2030 年 5 月。

⚠️「至少支援至 2030 年 5 月」不是「將於 2030 年 5 月關閉」。目前 Microsoft 尚未公布 Azure AD B2C 的最終服務終止日期,也沒有要求既有客戶必須在某個已公布期限前完成遷移。

Entra External ID 是後續的產品發展方向

Entra External ID 是 Microsoft 現在主要發展的外部身分平台。新客戶若要導入 CIAM,應直接評估 External ID;既有 B2C 客戶則可以繼續使用原本的服務,不必立即遷移。

Microsoft 已提供從 B2C 遷移至 External ID 的規劃與實作文件,內容涵蓋應用程式、使用者、登入憑證與密碼保留方式。不過,這代表企業已經有可採用的遷移路徑,不代表 B2C tenant 會自動升級,也不代表目前已經有強制遷移期限。

若企業決定遷移,仍須先準備 External tenant,再將使用者、應用程式與登入設定分階段移轉;遷移期間也可以讓 B2C 與 External ID 暫時並存。


二、Azure AD B2C 的功能與限制

Azure AD B2C 的主要用途,是讓企業建立一套獨立的顧客目錄,管理顧客帳號,並設定註冊、登入、密碼重設及第三方帳號登入等流程。

主要功能

  • User Flow: 用圖形化設定完成常見的註冊、登入、密碼重設與帳號資料收集流程。
  • 外部身分提供者: 可以串接 Google、Facebook 或其他支援標準協定的身分提供者,讓顧客使用既有帳號登入。
  • Custom Policy: 透過身分體驗框架(Identity Experience Framework, IEF)與 XML 設定較複雜的登入流程,例如增加額外驗證步驟、呼叫外部 API 或自訂 Token Claims。

使用上的限制

B2C 的彈性主要來自 Custom Policy,但這也提高了開發與維護成本:

  • Custom Policy 採用 XML,學習曲線較高,設定錯誤時也不容易除錯。
  • 複雜流程往往需要搭配 IEF、REST API 與多份 Policy 檔案,日後修改與交接較困難。
  • Microsoft 後續的 CIAM 新功能會以 Entra External ID 為主要發展平台,因此需要新功能或準備長期擴充的系統,必須評估兩個平台的功能差異。

💡這些限制說明了 Microsoft 為什麼把產品發展重心轉向 Entra External ID,但不代表既有 Azure AD B2C 系統必須立即停用或遷移。


三、Entra External ID:登入方式與 B2C 差異

Microsoft Entra External ID 是 Microsoft 用來管理外部身分的產品家族,涵蓋兩種不同的使用情境:

  • Workforce tenant(員工租戶): 除了管理公司員工,也能透過 B2B Collaboration 讓供應商、合作夥伴或訪客參與內部協作。
  • External tenant(外部租戶): 管理網站或 App 的消費者與企業客戶,負責顧客註冊、登入及帳號管理。

Azure AD B2C 原本負責的是顧客身分管理,因此企業若要遷移到 Entra External ID,對應的目標會是 External tenant,而不是 Workforce tenant。

External tenant 如何完成顧客登入

  1. 企業先在 External tenant 中註冊網站、行動 App 或 API。
  2. 接著建立 User Flow,設定顧客可以使用的登入方式,以及註冊時需要提供的資料。
  3. 顧客進入應用程式後,依照 User Flow 完成註冊或身分驗證。
  4. 驗證成功後,External ID 向應用程式簽發 Token,讓應用程式確認顧客身分並存取允許的資源。

登入畫面可以使用 Microsoft 提供的網頁,也可以透過 Native Authentication 整合進 App。兩種方式都由 External tenant 管理帳號與登入規則,差別主要在於畫面由 Microsoft 顯示,還是由 App 自行呈現。

Azure AD B2C 與 External ID 的功能差異

比較項目 Azure AD B2C Entra External ID(External tenant)
標準註冊與登入 User Flow User Flow
複雜商業邏輯 Custom Policy(XML/IEF) Custom Authentication Extensions
登入介面 以瀏覽器導向 Microsoft 託管頁面 Microsoft 託管頁面,或 Native Authentication(部分帳號情境)
安全政策 Custom Policy 與 User Flow 條件 Conditional Access,但功能範圍少於 Workforce tenant
Passkey 不支援 已支援,但目前主要限 Email+Password 的本地帳號

💡External ID 並不是把 B2C 的所有功能直接搬到新介面。標準登入仍可使用 User Flow,但複雜的 B2C Custom Policy 必須重新設計為 External ID 支援的設定或擴充方式。


四、從 B2C 搬到 External ID:帳號與密碼怎麼處理

B2C tenant 不會直接升級成 External tenant。企業必須先建立新的 External tenant,再把應用程式、顧客帳號、登入方式與自訂設定逐步搬過去。其中最需要決定的是:顧客能不能繼續使用原本的密碼?

不保留原本的密碼

這是比較簡單的做法。企業先把顧客帳號與基本資料建立到 External ID;顧客第一次登入時,再重新設定密碼或改用其他登入方式。

缺點是顧客必須多完成一次設定,登入體驗可能受到影響。

保留原本的密碼

B2C 不會直接把既有密碼資料整批匯出給 External ID,因此通常要等顧客再次登入,確認原密碼正確後再完成移轉。官方提供兩種做法:

方法一:先切換應用程式,再於登入時遷移

開始之前,企業須先在 External ID 建立顧客帳號,設定唯一且強度足夠的隨機暫時密碼,並標記哪些帳號尚待遷移密碼;接著再依下列流程切換登入。

https://ithelp.ithome.com.tw/upload/images/20260915/20181928j3MZs2wGvQ.png

  1. 在 External ID 預先建好帳號,標記為待遷移。
  2. 顧客在 External ID 輸入原本的帳密。
  3. 符合遷移條件時,透過後端向 B2C 驗證舊密碼。
  4. 驗證成功後,將密碼設定到 External ID,清除遷移標記並完成登入。
  5. 之後直接由 External ID 驗證,不再透過 B2C。

這種方式稱為 JIT password migration(Just-in-Time password migration,登入時密碼遷移)。帳號先在 External ID 建好,密碼則等顧客登入時,經過舊 B2C 驗證後再設定到新平台。好處是顧客可以沿用原密碼,企業也能先切換應用程式,再隨著顧客陸續登入完成遷移。

這裡的 JIT 處理的是密碼遷移;後面的文章會再介紹 JIT Provisioning 如何用在帳號建立與加入組織的流程中。

方法二:先在 B2C 累積遷移,再切換應用程式

https://ithelp.ithome.com.tw/upload/images/20260915/20181928YPeKbFhQ2y.png

  1. 應用程式暫時繼續使用 B2C 登入。
  2. 顧客登入成功後,由 Custom Policy 呼叫後端服務。
  3. 後端將這次輸入的密碼同步到對應的 External ID 帳號。
  4. 同步成功後,更新遷移標記,記錄該顧客已完成密碼遷移。
  5. 等大部分活躍顧客完成遷移,再將應用程式切換到 External ID。

剩餘帳號與相依服務處理完成後,才能停用 B2C。

這種方式稱為 B2C-initiated(由 B2C 觸發的遷移)。優點是正式切換前,已有一部分顧客完成帳號與密碼移轉;缺點是企業需要先修改既有 B2C Custom Policy。

比較項目 登入時遷移(JIT) 由 B2C 觸發遷移
應用程式何時切換 先切到 External ID 多數活躍顧客遷移後再切換
顧客從哪裡登入 External ID 原本的 B2C
密碼何時移轉 第一次在 External ID 登入時 再次登入 B2C 時
適合情況 想先切換新平台,再逐步遷移 想先累積已遷移帳號,再正式切換

小結

Azure AD B2C 與 Entra External ID 都用來管理網站或 App 的顧客身分,但 External ID 不是 B2C 的改名,既有的 B2C tenant 也不會直接升級成 External tenant。

既有客戶目前仍可繼續使用 B2C,Microsoft 也承諾至少支援至 2030 年 5 月;這是最低支援承諾,不是已公布的關閉日期。若企業要轉向 External ID,就必須另外建立 External tenant,重新設定應用程式與登入流程,並分階段處理顧客帳號與密碼。

因此,這不是一次性的產品升級,而是一項需要依照現有架構與顧客影響逐步規劃的遷移工作。

下一篇將轉向 AWS,看看 IAM Identity Center 與 Cognito 如何分別處理員工與顧客身分,並與 Microsoft 的做法進行對照。


參考資源


上一篇
Day 23|ACL 與 ReBAC:清單式與關係型授權
系列文
從登入到授權-現代軟體的身分架構指南 共 24 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言