這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
從另一個識別提供者移轉至 Azure Active Directory B2C (Azure AD B2C) 可能也需要移轉現有的用戶帳戶。 這裡將討論兩種移轉方法: 移轉前 和 無縫移轉。 使用任一種方法,您必須撰寫使用 Microsoft Graph API 在 Azure AD B2C 中建立使用者帳戶的應用程式或腳本。
觀看這段影片以瞭解 Azure AD B2C 使用者移轉策略和考慮的步驟。
備註
開始移轉之前,請確定 Azure AD B2C 租使用者的未使用配額可以容納您預期移轉的所有使用者。 瞭解如何 取得您的租戶使用量。 如果您需要增加租使用者的配額限制,請連絡 Microsoft支援。
移轉前
在移轉前流程中,您的移轉應用程式會針對每個使用者帳戶執行下列步驟:
- 從舊的識別提供者讀取用戶帳戶,包括其目前的認證(使用者名稱和密碼)。
- 在具有目前認證的 Azure AD B2C 目錄中建立對應的帳戶。
在以下兩種情況下,您可以使用預遷移流程:
- 您可以存取使用者的純文字認證(使用者名稱和密碼)。
- 認證已加密,但您可以將其解密。
如需以程序設計方式建立使用者帳戶的資訊,請參閱 使用 Microsoft Graph 管理 Azure AD B2C 用戶帳戶。
無縫移轉
如果無法存取舊身分識別提供者中的純文本密碼,請使用無縫移轉流程。 例如,當:
- 密碼會以單向加密格式儲存,例如哈希函式。
- 密碼會以您無法存取的方式,由舊版識別提供者儲存。 例如,當識別提供者藉由呼叫 Web 服務來驗證認證時。
無縫移轉流程仍然需要預先移轉用戶帳戶,但接著會使用 自定義原則 來查詢 REST API (您建立的 API),以在第一次登入時設定每個用戶的密碼。
無縫移轉流程包含兩個階段: 移轉前 和 設定認證。
階段 1:移轉前
- 您的移轉應用程式會從舊的識別提供者讀取用戶帳戶。
- 移轉應用程式會在您的 Azure AD B2C 目錄中建立對應的用戶帳戶,但設定您產生的 隨機密碼 。
階段 2:設定認證
完成帳戶的預先移轉之後,您的自定義原則和 REST API 會在使用者登入時執行下列動作:
- 讀取與輸入的電子郵件地址相符的 Azure AD B2C 用戶帳戶。
- 藉由評估布爾擴充屬性,檢查帳戶是否已標示為移轉。
- 如果擴充屬性返回
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 中。
-
DO 存放區位於 Azure AD B2C:
- 使用者名稱、密碼、電子郵件地址、電話號碼、成員資格號碼/標識符。
- 隱私政策和終端使用者許可協定的同意標記。
-
請勿 儲存在 Azure AD B2C 中:
- 信用卡號碼、社會安全號碼(SSN)、醫療記錄或其他政府或行業合規性機構所監管的敏感數據。
- 營銷或通訊偏好、用戶行為和洞察。
目錄清除
開始移轉流程之前,請把握機會清理目錄。
- 識別要儲存在 Azure AD B2C 中的一組用戶屬性,並只移轉您需要的專案。 如有必要,您可以建立 自定義屬性 來儲存更多有關用戶的數據。
- 如果您要從具有多個驗證來源的環境移轉(例如,每個應用程式都有自己的用戶目錄),請移轉至 Azure AD B2C 中的統一帳戶。
- 如果多個應用程式有不同的用戶名稱,您可以使用身分識別集合,將所有使用者名稱儲存在 Azure AD B2C 用戶帳戶中。 關於密碼,讓用戶選擇一個密碼,並將它設定在目錄中。 例如,透過無縫移轉,只有所選的密碼應該儲存在 Azure AD B2C 帳戶中。
- 拿掉未使用的用戶帳戶,或不要移轉過時的帳戶。
密碼原則
如果您要移轉的帳戶密碼強度比 Azure AD B2C 強制執行的 強密碼強度 弱,您可以停用強密碼需求。 如需詳細資訊,請參閱 密碼原則屬性。
後續步驟
GitHub 上的存放 azure-ad-b2c/user-migration 庫包含無縫移轉自定義原則範例和 REST API 程式代碼範例: