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

開始 之前,請使用 [選擇原則類型 選取器] 來選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先 定義的使用者流程 ,或透過完全可設定 的自訂原則 。 本文中每個方法所需的步驟都不同。

概觀

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

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

Force password reset flow

密碼重設流程適用于使用電子郵件地址或 使用者名稱 搭配密碼進行登入的 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. 針對 [ 應用程式 ],選取您先前註冊的 Web 應用程式名為 webapp1 。 回復 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
	passwordNotificationWindowInDays = 15
}

Update-MgDomain -DomainId $domainId -BodyParameter $params

注意

passwordValidityPeriodInDays 指出密碼在必須變更之前,密碼會維持有效天數的時間長度。 passwordNotificationWindowInDays 表示使用者收到第一個通知,表示密碼到期日前幾天的時間長度,指出其密碼即將到期。

下一步

設定 自助式密碼重設