Azure Active Directory B2C 的建議和最佳做法

下列最佳做法和建議涵蓋將 Azure Active Directory (Azure AD) B2C 整合至現有或新應用程式環境的一些主要層面。

基本項目

最佳做法 描述
建立緊急存取帳戶 此緊急存取帳戶可協助您在一些情況下取得 Azure AD B2C 租用戶的存取權,例如需要認證時,無法聯繫到唯一的系統管理員。 建立緊急存取帳戶
選擇適合大部分案例的使用者流程 Azure AD B2C 的 Identity Experience Framework 是服務的核心優勢。 原則可完整描述身分識別體驗,例如註冊、登入或設定檔編輯。 為了協助您設定最常見的身分識別工作,Azure AD B2C 入口網站包含預先定義且可設定的原則,稱為使用者流程。 透過使用者流程,您只要按幾下滑鼠,即可在幾分鐘內建立絕佳的使用者體驗。 了解何時使用使用者流程與自訂原則
應用程式註冊 每個應用程式 (Web、原生) 和受保護的 API 都必須在 Azure AD B2C 中註冊。 如果應用程式同時具有 iOS 和 Android 的 Web 和原生版本,您可以使用相同的用戶端識別碼,將它們註冊為 Azure AD B2C 中的單一應用程式。 了解如何註冊 OIDC、SAML、Web 和原生應用程式。 深入了解可在 Azure AD B2C 中使用的應用程式類型
改為每月活躍使用者計費 Azure AD B2C 已從每月活躍驗證改為每月活躍使用者 (MAU) 計費。 對大部分的客戶來說,此模型更符合成本效益。 深入了解每月活躍使用者計費

規劃與設計

定義您的應用程式和服務架構、清查目前的系統,並規劃移轉至 Azure AD B2C。

最佳做法 描述
建置端對端解決方案 規劃 Azure AD B2C 整合時,請完整納入您所有應用程式的相依性。 請考慮目前已在您環境中或可能需要新增至解決方案的所有服務和產品 (例如 Azure Functions、客戶關係管理 (CRM) 系統、Azure API 管理閘道和儲存體服務)。 將所有服務的安全性和可擴縮性納入考慮。
記錄您的使用者體驗 詳細構思客戶在應用程式中可體驗的所有使用者旅程圖。 包括每個畫面,以及客戶進行應用程式身分識別與設定檔層面互動時,可能會遇到的任何分支流程。 在規劃中納入可用性、協助工具和當地語系化。
選擇正確的驗證通訊協定 如需不同應用程式案例及其建議驗證流程的明細,請參閱案例與支援的驗證流程
進行端對端使用者體驗的概念證明 (POC) 試驗 從我們的 Microsoft 程式碼範例社群範例開始。
建立移轉計劃 事先規劃可讓移轉更順暢。 深入了解使用者移轉
可用性與安全性 您的解決方案必須在應用程式可用性和組織可接受的風險層級之間取得適當平衡。
將內部部署相依性移至雲端 若要協助確保復原解決方案,請考慮將現有的應用程式相依性移至雲端。
將現有應用程式移轉至 b2clogin.com 所有 Azure AD B2C 租用戶的 login.microsoftonline.com 淘汰將於 2020 年 12 月 4 日生效。 深入了解
使用身分識別保護和條件式存取 使用這些功能可大幅提高對風險性驗證和存取原則的控制。 需要 Azure AD B2C Premium P2。 深入了解
租用戶大小 您必須考慮以 Azure AD B2C 租用戶大小進行規劃。 根據預設,Azure AD B2C 租用戶可以容納 125 萬個物件 (用戶帳戶和應用程式)。 將自訂網域新增至您的租用戶並加以驗證,可以將此限制提高至 525 萬個物件。 如果您需要較大的租用戶大小,您必須連絡支援人員

實作

在實作階段中,請考慮下列建議。

最佳做法 描述
使用適用於 Visual Studio Code 的 Azure AD B2C 延伸模組編輯自訂原則 Visual Studio Code Marketplace 下載 Visual Studio Code 與此社群建立的延伸模組。 雖然適用於 Visual Studio Code 的 Azure AD B2C 延伸模組並非官方 Microsoft 產品,但其中包含數種功能,可協助您更輕鬆地使用自訂原則。
了解如何針對 Azure AD B2C 進行疑難排解 了解如何在開發期間針對自訂原則進行疑難排解。 了解什麼是一般驗證流程,並使用工具來發現異常和錯誤。 例如,使用 Application Insights 來檢閱使用者旅程圖的輸出記錄。
利用經過證實的自訂原則模式資源庫 尋找增強的 Azure AD B2C 客戶身分識別與存取管理 (CIAM) 使用者旅程圖範例

測試

測試並自動化您的 Azure AD B2C 實作。

最佳做法 描述
全域流量的帳戶 使用來自不同全域位址的流量來源,測試效能和當地語系化需求。 請確定所有的 HTML、CSS 和相依性都符合您的效能需求。
功能和 UI 測試 全面測試使用者流程。 使用 Selenium、VS Web 測試等,每隔幾分鐘新增綜合測試。
滲透測試 將解決方案上線之前,請執行滲透測試練習,確認所有元件都是安全的,包括任何協力廠商相依性。 確認您已使用存取權杖保護您的 API,並針對您的應用程式案例使用正確的驗證通訊協定。 深入了解滲透測試Microsoft 雲端整合滲透測試的參與規則
A/B 測試 使用一小組隨機使用者來試驗您的新功能,然後再推出到整個母群。 在 Azure AD B2C 中啟用 JavaScript 的情況下,您即可整合 A/B 測試工具 (例如 Optimizely、Clarity 等)。
負載測試 Azure AD B2C 可以調整規模,但應用程式只能在其所有相依性可以擴縮時才能進行調整。 進行 API 和 CDN 的負載測試。 深入了解透過開發人員最佳做法進行復原
節流 如果短時間內從相同來源傳送太多要求,Azure AD B2C 會進行節流。 在負載測試時使用數個流量來源,並正常處理應用程式中的 AADB2C90229 錯誤碼。
自動化 使用持續整合與傳遞 (CI/CD) 管線來自動化測試和部署,例如 Azure DevOps

Operations

管理您的 Azure AD B2C 環境。

最佳做法 描述
建立多個環境 為了簡化作業和部署的推出,請針對開發、測試、生產前和實際生產建立不同的環境。 為每個環境建立 Azure AD B2C 租用戶。
使用自訂原則版本控制 針對您的 Azure AD B2C 自訂原則,請考慮使用 GitHub、Azure Repos 或其他雲端架構版本控制系統。
使用 Microsoft Graph API 將 B2C 租用戶的管理自動化 Microsoft Graph API:
管理 Identity Experience Framework (自訂原則)
[索引鍵]
使用者流程
整合 Azure DevOps CI/CD 管線可讓您輕鬆地在不同環境之間移動程式碼,並確保生產環境永遠就緒。
部署自訂原則 Azure AD B2C 依賴快取來為您的終端使用者提供效能。 當您使用任何方法部署自訂原則時,預計會延遲至多 30 分鐘,使用者才會看到變更。 因為這項行為的結果,當您部署自訂原則時,請考慮下列做法:
- 如果您要部署至開發環境,請在自訂原則檔案的 <TrustFrameworkPolicy> 元素中,將 DeploymentMode 屬性設定為 Development
- 當應用程式中的流量很低時,將已更新的原則檔案部署至生產環境。
- 當您部署至生產環境以更新現有的原則檔案時,請使用新名稱上傳更新檔案,然後將應用程式參考更新為新名稱。 之後,您可以移除舊的原則檔案。
- 您可以在生產環境中將 DeploymentMode 設定為 Development,以略過快取行為。 但不建議您使用此作法。 如果您使用 Application Insights 收集 Azure AD B2C 記錄,這會收集從身分識別提供者發出或收到的所有宣告,這是安全性和效能風險。
部署應用程式註冊更新 當您在 Azure AD B2C 租用戶中修改應用程式註冊時,例如更新應用程式的重新導向 URI 時,預計會在生產環境中延遲至多 2 小時 (3600 秒),變更才會生效。 建議您在應用程式流量偏低時,在生產環境中修改應用程式註冊。
與 Azure 監視器整合 稽核記錄只會保留七天。 整合 Azure 監視器以保留記錄供長期使用,或將其與第三方安全性資訊與事件管理 (SIEM) 工具整合,以深入了解您的環境。
設定主動警示和監視 使用 Application Insights,在 Azure AD B2C 中追蹤使用者行為

支援和狀態更新

隨時掌握最新的服務狀態,並尋找支援選項。

最佳做法 描述
服務更新 隨時掌握 Azure AD B2C 產品更新和公告的最新消息。
Microsoft 支援服務 提出 Azure AD B2C 技術問題的支援要求。 計費及訂用帳戶管理支援均為免費提供。
Azure 狀態 檢視所有 Azure 服務目前的健全狀態。