將使用者遷移至 Azure AD B2C

從其他識別提供者遷移至 Azure Active Directory B2C (Azure AD B2C) 時,可能也需要遷移現有的使用者帳戶。 此處討論兩種移轉方法:預先移轉無縫移轉。 無論使用哪一種方法,您都必須撰寫使用 Microsoft Graph API 的應用程式或指令碼,以在 Azure AD B2C 中建立使用者帳戶。

請觀看這段影片,了解所應考量的 Azure AD B2C 使用者移轉策略和步驟。

注意

開始移轉之前,請確定 Azure AD B2C 租使用者的未使用配額可以容納您預期移轉的所有使用者。 瞭解如何 取得您的租使用者使用量。 如果您需要增加租使用者的配額限制,請連絡Microsoft 支援服務

預先移轉

在預先移轉流程中,您的移轉應用程式會對每個使用者帳戶執行下列步驟:

  1. 從舊的識別提供者讀取使用者帳戶,包括其目前的認證 (使用者名稱和密碼)。
  2. 在您的 Azure AD B2C 目錄中,使用目前的認證建立對應的帳戶。

在以下兩種情況下,請使用預先移轉流程:

  • 您有權存取使用者的純文字認證 (其使用者名稱和密碼)。
  • 認證經過加密,但您可加以解密。

如需以程式設計方式建立使用者帳戶的相關資訊,請參閱使用 Microsoft Graph 管理 Azure AD B2C 使用者帳戶

無縫移轉

如果無法存取舊識別提供者中的純文字密碼,請使用無縫移轉流程。 例如,當:

  • 密碼以單向加密的格式儲存,例如使用雜湊函式。
  • 舊的識別提供者以您無法存取的方式儲存密碼。 例如,當識別提供者呼叫 Web 服務以驗證認證時。

無縫移轉流程仍需要預先移轉使用者帳戶,但接著會使用自訂原則來查詢 REST API (由您建立) 以在首次登入時設定每個使用者的密碼。

無縫移轉流程包含兩個階段:預先移轉設定認證

階段 1:預先移轉

  1. 您的移轉應用程式會從舊的識別提供者讀取使用者帳戶。
  2. 移轉應用程式會在您的 Azure AD B2C 目錄中建立對應的使用者帳戶,但會設定您所產生的隨機密碼

階段 2:設定認證

帳戶的預先移轉完成後,您的自訂原則和 REST API 接著會在使用者登入時執行下列動作:

  1. 讀取與輸入的電子郵件地址相對應的 Azure AD B2C 使用者帳戶。
  2. 藉由評估布林值擴充屬性,來檢查帳戶是否已標示為要遷移。
    • 如果擴充屬性傳回 True,請呼叫您的 REST API,以根據舊的識別提供者來驗證密碼。
      • 如果 REST API 判定密碼不正確,請向使用者傳回簡單易懂的錯誤。
      • 如果 REST API 判定密碼正確無誤,請將密碼寫入 Azure AD B2C 帳戶,並將布林值擴充屬性變更為 False
    • 如果布林值擴充屬性傳回 False,請繼續進行登入程序。

若要查看範例自訂原則和 REST API,請參閱 GitHub 上的無縫使用者移轉範例

此流程圖顯示使用者移轉的無縫移轉方法

安全性

無縫移轉方法會使用您自己的自訂 REST API,根據舊的識別提供者來驗證使用者的認證。

您必須保護 REST API 免受暴力密碼破解攻擊。 攻擊者可以提交數個密碼,試著猜出使用者的認證。 若要抵禦這類攻擊,當登入嘗試次數達到特定閾值時,請停止處理對 REST API 的要求。 此外,請確保 Azure AD B2C 與 REST API 之間的通訊安全。 若要了解如何保護您的 RESTful API 以用於實際執行環境,請參閱保護 RESTful API

使用者屬性

舊識別提供者中的資訊並非全都應遷移至您的 Azure AD B2C 目錄。 在遷移之前,請先識別要儲存在 Azure AD B2C 中的適當使用者屬性集。

  • 應該儲存在 Azure AD B2C 中:
    • 使用者名稱、密碼、電子郵件地址、電話號碼、成員資格號碼/識別碼。
    • 隱私權原則和使用者授權合約的同意標記。
  • 不應儲存在 Azure AD B2C 中:
    • 敏感性資料,例如信用卡號碼、社會安全號碼 (SSN)、醫療記錄,或政府或產業合規性主體所管制的其他資料。
    • 行銷或通訊喜好設定、使用者行為和見解。

目錄清除

開始進行移轉程序之前,請先找機會清除您的目錄。

  • 識別要儲存在 Azure AD B2C 中的使用者屬性集,並僅遷移您需要的項目。 如有必要,您可以建立自訂屬性,以儲存更多關於使用者的資料。
  • 如果您要從具有多個驗證來源的環境進行遷移 (例如,每個應用程式各有其本身的使用者目錄),請遷移至 Azure AD B2C 中的整合帳戶。
  • 如果多個應用程式有不同的使用者名稱,您可以使用身分識別集合將其全部儲存在 Azure AD B2C 使用者帳戶中。 關於密碼,請讓使用者自行選擇,並在目錄中加以設定。 例如,使用無縫移轉時,僅應將選擇的密碼儲存在 Azure AD B2C 帳戶中。
  • 移除未使用的使用者帳戶,或不要遷移過時的帳戶。

密碼原則

如果您要遷移的帳戶密碼強度低於 Azure AD B2C 強制執行的強式密碼強度,您可以停用強式密碼需求。 如需詳細資訊,請參閱密碼原則屬性

後續步驟

azure-ad-b2c/user-migrationGitHub 上的存放庫包含無縫移轉自訂原則範例和 REST API 程式碼範例:

無縫使用者移轉自訂原則和 REST API 程式碼範例