前幾天我們先從 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 的目前狀態、功能差異及遷移方式。
今天內容涵蓋:
Azure AD B2C 與 Microsoft Entra External ID 都屬於 CIAM(Customer Identity and Access Management,顧客身分與存取管理) 平台,用來處理網站或 App 的顧客註冊、登入與帳號管理。不過,兩者目前的產品狀態並不相同。
截至 2026 年 9 月,Azure AD B2C 仍持續提供給既有客戶使用,但已不再向新客戶銷售;Microsoft 後續的 CIAM 產品發展則以 Entra External ID 為主。
⚠️「至少支援至 2030 年 5 月」不是「將於 2030 年 5 月關閉」。目前 Microsoft 尚未公布 Azure AD B2C 的最終服務終止日期,也沒有要求既有客戶必須在某個已公布期限前完成遷移。
Entra External ID 是 Microsoft 現在主要發展的外部身分平台。新客戶若要導入 CIAM,應直接評估 External ID;既有 B2C 客戶則可以繼續使用原本的服務,不必立即遷移。
Microsoft 已提供從 B2C 遷移至 External ID 的規劃與實作文件,內容涵蓋應用程式、使用者、登入憑證與密碼保留方式。不過,這代表企業已經有可採用的遷移路徑,不代表 B2C tenant 會自動升級,也不代表目前已經有強制遷移期限。
若企業決定遷移,仍須先準備 External tenant,再將使用者、應用程式與登入設定分階段移轉;遷移期間也可以讓 B2C 與 External ID 暫時並存。
Azure AD B2C 的主要用途,是讓企業建立一套獨立的顧客目錄,管理顧客帳號,並設定註冊、登入、密碼重設及第三方帳號登入等流程。
B2C 的彈性主要來自 Custom Policy,但這也提高了開發與維護成本:
💡這些限制說明了 Microsoft 為什麼把產品發展重心轉向 Entra External ID,但不代表既有 Azure AD B2C 系統必須立即停用或遷移。
Microsoft Entra External ID 是 Microsoft 用來管理外部身分的產品家族,涵蓋兩種不同的使用情境:
Azure AD B2C 原本負責的是顧客身分管理,因此企業若要遷移到 Entra External ID,對應的目標會是 External tenant,而不是 Workforce tenant。
登入畫面可以使用 Microsoft 提供的網頁,也可以透過 Native Authentication 整合進 App。兩種方式都由 External tenant 管理帳號與登入規則,差別主要在於畫面由 Microsoft 顯示,還是由 App 自行呈現。
| 比較項目 | 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 tenant 不會直接升級成 External tenant。企業必須先建立新的 External tenant,再把應用程式、顧客帳號、登入方式與自訂設定逐步搬過去。其中最需要決定的是:顧客能不能繼續使用原本的密碼?
這是比較簡單的做法。企業先把顧客帳號與基本資料建立到 External ID;顧客第一次登入時,再重新設定密碼或改用其他登入方式。
缺點是顧客必須多完成一次設定,登入體驗可能受到影響。
B2C 不會直接把既有密碼資料整批匯出給 External ID,因此通常要等顧客再次登入,確認原密碼正確後再完成移轉。官方提供兩種做法:
開始之前,企業須先在 External ID 建立顧客帳號,設定唯一且強度足夠的隨機暫時密碼,並標記哪些帳號尚待遷移密碼;接著再依下列流程切換登入。

這種方式稱為 JIT password migration(Just-in-Time password migration,登入時密碼遷移)。帳號先在 External ID 建好,密碼則等顧客登入時,經過舊 B2C 驗證後再設定到新平台。好處是顧客可以沿用原密碼,企業也能先切換應用程式,再隨著顧客陸續登入完成遷移。
這裡的 JIT 處理的是密碼遷移;後面的文章會再介紹 JIT Provisioning 如何用在帳號建立與加入組織的流程中。

剩餘帳號與相依服務處理完成後,才能停用 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 的做法進行對照。