Azure Active Directory B2C 全域身分識別架構
Azure Active Directory B2C 是客戶身分識別存取管理, (CIAM) 解決方案,每天支援數百萬個使用者和數十億個驗證。 負責驗證平台的規模調整和安全性,以及監控和自動處理威脅 (例如拒絕服務、密碼噴濺或暴力密碼破解攻擊)。
Azure Active Directory B2C (Azure AD B2C) 是與Microsoft Entra識別碼不同的服務。 其建置方式與Microsoft Entra識別碼相同,但用途不同。 它可讓企業建置面向客戶的應用程式,然後允許自助式註冊應用程式。
Azure AD B2C 是由數個元件組成的全域分散式服務:
建立 Azure AD B2C 解決方案時,您必須提供裝載服務的位置。 此位置僅與將儲存使用者設定檔資料的區域有關,而處理您登入的其餘服務則會全域執行。
您通常會在最接近使用者基底的區域中部署 Azure AD B2C 租使用者。 這可讓您更輕鬆地維護資料落地法的合規性,因為使用者設定檔只會在 選取的區域複寫。 這也會在登入期間提供最佳效能,因為網路延遲已優化至目錄存放區。
當您的 Azure AD B2C 目錄需要為全球各地的使用者提供服務時,區域結構會造成挑戰。 您必須決定要在其中建立 Azure AD B2C 租使用者的位置。 所選區域以外的任何使用者都可能不符合資料落地需求,也可能在驗證認證或讀取使用者設定檔資料時遇到延遲增加。
例如,假設有一個應用程式支援澳洲和北美洲中的使用者,而 Azure AD B2C 目錄是在北美洲區域中建立的。 從澳洲登入的使用者可能會面臨較長的處理時間,以完成其驗證。
若要更符合資料落地需求並減輕效能問題,您必須部署多個 Azure AD B2C 租使用者。 藉由將租使用者放在您企業運作的每個區域中,會將作業放入目錄中,以達到延遲的優化。 不過,藉由這樣做,解決方案會建立其他額外負荷,以在每個區域中設定、管理及保護這些敏感性租使用者資源。 其他額外負荷包括:
租使用者管理
租使用者隔離導致使用者體驗不全域
計費
管理原則/應用程式註冊/金鑰的 CI/CD 程式
本檔建議使用 Azure AD B2C 的架構,最適合為全球使用者提供服務的客戶提供解決方案。 這些解決方案符合下列需求:
無論使用者從何處存取應用程式,使用者都可以維護相同的認證集。
無論使用者從何處進行驗證,效能和延遲都一致。
讓客戶能夠輕鬆地將程式、架構或 SDK 傳遞給其開發人員小組,且不需要最少的設定。
當使用者在全球各地移動時,可以維護使用者設定檔。 這會在任何服務內的使用者互動所產生的分析中建立更多價值。
客戶使用者資料會儲存在區域資料存放區中。
以下是使用 Azure AD B2C 租使用者為全球營運商務模型實作身分識別平臺時所要考慮的兩種方法。
第一種方法會使用地理區域,因為界限和應用程式會特別針對區域進行設定。
第二種方法具有應用程式的全域界限,並使用額外的 Azure AD B2C 租使用者來協調區域租使用者之間的互動。
區域租使用者協調流程
在此模型中,應用程式會裝載于每個區域,或具有每個區域組態來連線到區域租使用者。 應用程式會將使用者直接傳送至區域特定的租使用者。 當使用者可能已移至不同的區域時,會使用跨租使用者通訊來執行跨租使用者驗證或設定檔更新。
漏斗圖租使用者協調流程
在此模型中,Azure AD B2C 租使用者漏斗圖會將使用者傳送到區域 Azure AD B2C 租使用者。 漏斗圖租使用者會作為重新導向協調器運作至其他 Azure AD B2C 租使用者。 這會由 Azure AD B2C 服務的全域散發元件處理,因此效能不會受到影響。 此重新導向是使用 OpenId Connect 識別提供者同盟來執行。
跨租使用者通訊可用來執行跨租使用者驗證,或跨租使用者設定檔更新。 漏斗圖租使用者提供單一端點來與應用程式通訊。
您決定建立解決方案模型之後的架構需要根據所述的兩個模型之間的取捨做出選擇。 例如,漏斗圖模型可讓您維護單一應用程式實例。 下一節說明可能會影響您選擇的設計的功能、選取準則和效能。
功能和考量
下表描述使用區域與漏斗圖型設計所提供的功能:
功能 | 以區域為基礎的 | 漏斗圖型 |
---|---|---|
支援本機帳戶註冊和登入 | ||
支援同盟帳戶註冊和登入 | ||
支援驗證本機帳戶,讓使用者從其已註冊區域外部登入 | ||
支援使用跨租使用者 API 型查閱,向註冊區域外部登入的使用者驗證同盟帳戶 | ||
防止註冊多個不同區域 | ||
每個區域中的應用程式都有一組要連線的端點 | ||
所有應用程式都會連線到單一端點集,不論它們裝載的區域為何 | ||
支援精細的條件式存取原則。 | ||
已針對成本優化。 |
根據功能,必須將下列考慮納入考慮:
使用以區域為基礎的方法時,主要考慮是此方法需要跨越多個區域的應用程式為每個區域 Azure AD B2C 租使用者設定個別的組態。
使用漏斗圖型方法時
有雙重權杖成本
引進了額外的 HTTP 重新導向
許多租使用者上都需要自訂網域
條件式存取會在租使用者層級套用,而不是應用層級
透過多個 IdP 單一登出可能會帶來挑戰
您選擇的方法將取決於您裝載的應用程式數目,以及應用程式存取的特定需求。
效能
在區域或漏斗型組態中使用多個租使用者的效能優勢,將會是針對全球營運企業使用單一 Azure AD B2C 租使用者的改善。
使用漏斗圖型方法時,漏斗圖租使用者位於一個特定區域中,並全域提供使用者。 由於漏斗租使用者作業會利用 Azure AD B2C 服務的通用群組件,因此無論使用者從何處登入,都會維持一致的效能層級。
如上圖所示,漏斗圖式方法中的 Azure AD B2C 租使用者只會利用原則引擎來執行重新導向至區域 Azure AD B2C 租使用者。 Azure AD B2C 原則引擎元件會全域散發。 因此,不論布建 Azure AD B2C 漏斗租使用者的位置為何,漏斗圖都不會受限於效能觀點。 由於漏斗圖與區域租使用者之間的額外重新導向,因此發生效能損失。
在以地區為基礎的方法中,由於每個使用者都會導向至其最本機的 Azure AD B2C,因此所有使用者登入的效能都一致。
區域租使用者將會對目錄存放區執行目錄呼叫,這是漏斗圖架構和區域架構中唯一的區域化元件。
只有在使用者已在註冊所在的不同區域中執行驗證時,才會發生額外的延遲。 這是因為,將會跨區域呼叫,以連線到其設定檔所在的目錄存放區,以完成其驗證。