共用方式為


在 Azure Active Directory B2C 中設定強制密碼重設流程

這很重要

自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解

開始之前,請使用此頁面頂端的 [選擇原則類型] 選取器,選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先定義的使用者流程,或透過完全可設定的自訂原則。 此文章中所需的步驟隨各方法而異。

概觀

身為系統管理員,如果使用者忘記密碼,您可以 重設用戶的密碼 。 或者,您想要強制他們重設密碼。 在本文中,您將瞭解如何在這些案例中強制重設密碼。

當系統管理員透過 Azure 入口網站重設使用者的密碼時, forceChangePasswordNextSignIn 屬性的值會設定為 true登入和註冊流程會檢查此屬性的值。 當使用者完成登入之後,如果屬性設定為 true,則用戶必須重設其密碼。 然後,屬性的值會設定回 false

強制密碼重設流程

密碼重設流程適用於使用 電子郵件地址用戶名稱 搭配密碼進行登入的 Azure AD B2C 本機帳戶。

先決條件

設定您的使用者流程

若要在註冊或登入使用者流程中啟用 強制密碼重設 設定:

  1. 登入 Azure 入口網站
  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
  3. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]
  4. 選取 [使用者流程]。
  5. 選取您想要自訂的註冊和登入,或登入使用者流程(類型為 推薦)。
  6. 在左側功能表的 [設定] 下,選取 [屬性]。
  7. [密碼設定] 底下,選取 [強制密碼重設]。
  8. 選取 [儲存]。

測試使用者流程

  1. 以用戶系統管理員或密碼系統管理員身分登入 Azure 入口網站 。 如需可用角色的詳細資訊,請參閱 在 Microsoft Entra ID 中指派系統管理員角色
  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
  3. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]
  4. 選取使用者。 搜尋並選取您將用來測試密碼重設的使用者,然後選取 [ 重設密碼]。
  5. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]
  6. 選取 [使用者流程]。
  7. 選取您要測試的註冊或登入使用者流程(類型為 [建議] 。
  8. 選取執行使用者流程
  9. 針對 [應用程式],選取您先前註冊名為 webapp1 的 Web 應用程式。 Reply URL 應顯示 https://jwt.ms
  10. 選取執行使用者流程
  11. 使用您重設密碼的用戶帳戶登入。
  12. 您現在必須變更使用者的密碼。 變更密碼,然後選取 [ 繼續]。 令牌會傳回到https://jwt.ms,而且應該會顯示給您。

設定您的自定義原則

取得 GitHub 上強制密碼重設原則的範例。 在每個檔案中,將字串 yourtenant 取代為您的 Azure AD B2C 租用戶名稱。 例如,如果 B2C 租使用者的名稱是 contosob2c,則的所有實例 yourtenant.onmicrosoft.com 都會變成 contosob2c.onmicrosoft.com

上傳和測試政策

  1. 登入 Azure 入口網站
  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
  3. 選擇 Azure 入口網站左上角 的 [所有服務 ],然後搜尋並選取 [Azure AD B2C]。
  4. 選取 [ 身分識別體驗架構]。
  5. [自定義原則] 中,選取 [上傳原則]。
  6. 選取 TrustFrameworkExtensionsCustomForcePasswordReset.xml 檔案。
  7. 選取 上傳
  8. 針對信任方檔案 TrustFrameworkExtensionsCustomForcePasswordReset.xml 重複執行步驟 6 到 8。

執行政策

  1. 開啟您上傳 B2C_1A_TrustFrameworkExtensions_custom_ForcePasswordReset的原則。
  2. 針對 [應用程式],選取您稍早註冊的應用程式。 若要檢視令牌,回覆 URL 應該會顯示 https://jwt.ms
  3. 選取 [立即執行]
  4. 使用您重設密碼的用戶帳戶登入。
  5. 您現在必須變更使用者的密碼。 變更密碼,然後選取 [ 繼續]。 令牌會傳回到https://jwt.ms,而且應該會顯示給您。

在下一次登入時強制重設密碼

若要在下一次登入時強制重設密碼,請使用 MS Graph 更新使用者 作業來更新帳戶密碼配置檔。 若要這樣做,您必須將 Microsoft Graph 應用程式 指派為 用戶系統管理員 角色。 請遵循授與 用戶系統管理員角色 中的步驟,將Microsoft Graph 應用程式指派為用戶系統管理員角色。

下列範例會將密碼配置檔 forceChangePasswordNextSignIn 屬性更新為 true,這會強制使用者在下次登入時重設密碼。

PATCH https://graph.microsoft.com/v1.0/users/<user-object-ID>
Content-type: application/json

{
    "passwordProfile": {
      "forceChangePasswordNextSignIn": true
    }
}

設定帳戶密碼配置檔之後,您也必須設定強制密碼重設流程,如本文所述。

在 90 天后強制重設密碼

身為系統管理員,您可以使用 MS Graph 將使用者的密碼到期設定為 90 天。 90 天后, forceChangePasswordNextSignIn 屬性的值會自動設定為 true。 若要在 90 天后強制重設密碼,請從使用者配置檔DisablePasswordExpiration屬性中移除值。

下列範例會將密碼原則更新為 None,這會在 90 天后強制重設密碼:

PATCH https://graph.microsoft.com/v1.0/users/<user-object-ID>
Content-type: application/json

{
  "passwordPolicies": "None"
}

如果您停用強 密碼複雜度,請將密碼原則更新為 DisableStrongPassword

備註

用戶重設密碼後,passwordPolicies 將變回 DisablePasswordExpiration。

PATCH https://graph.microsoft.com/v1.0/users/<user-object-ID>
Content-type: application/json

{
  "passwordPolicies": "DisableStrongPassword"
}

設定密碼到期原則之後,您也必須設定強制密碼重設流程,如本文所述。

密碼到期時間

根據預設,密碼設定為不會過期。 不過,您可以使用來自 Microsoft Graph PowerShell 模組的 Update-MgDomain Cmdlet 來設定此值。 此命令會更新租戶,讓所有使用者的密碼在您設定的天數之後到期。 例如:

Import-Module Microsoft.Graph.Identity.DirectoryManagement

Connect-MgGraph  -Scopes 'Domain.ReadWrite.All'

$domainId = "contoso.com"
$params = @{
	passwordValidityPeriodInDays = 90
}

Update-MgDomain -DomainId $domainId -BodyParameter $params
  • passwordValidityPeriodInDays 是密碼在必須變更前保持有效天數的時間長度。

設定 自助式密碼重置