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

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

概觀

如果使用者忘記自己的密碼,您可以透過管理員身分重設使用者的密碼。 或者,您想要強制他們重設密碼。 在本文中,您將了解如何在這些案例中強制密碼重設。

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

強制密碼重設流程

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

必要條件

設定使用者流程

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

  1. 登入 Azure 入口網站
  2. 確定您使用的目錄包含您的 Azure AD B2C 租用戶。 選取入口網站工具列中的目錄 + 訂閱圖示。
  3. 在 [入口網站設定] | [目錄 + 訂用帳戶] 頁面上,在 [目錄名稱] 清單中尋找您的 Azure AD B2C 目錄,然後選取 [切換]。
  4. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
  5. 選取 [使用者流程]
  6. 選取您想要自訂的註冊和登入或登入使用者流程 ([建議] 類型)。
  7. 在左側功能表的 [設定] 底下,選取 [屬性]。
  8. 在 [密碼設定] 底下,選取 [強制密碼重設]。
  9. 選取 [儲存]。

測試使用者流程

  1. 以使用者管理員或密碼管理員身分,登入 Azure 入口網站。 如需可用角色的詳細資訊,請參閱在 Azure Active Directory 中指派系統管理員角色
  2. 確定您使用的目錄包含您的 Azure AD B2C 租用戶。 選取入口網站工具列中的目錄 + 訂閱圖示。
  3. 在 [入口網站設定] | [目錄 + 訂用帳戶] 頁面上,在 [目錄名稱] 清單中尋找您的 Azure AD B2C 目錄,然後選取 [切換]。
  4. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
  5. 選取 [使用者]。 搜尋並選取您將用來測試密碼重設的使用者,然後選取 [重設密碼]。
  6. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
  7. 選取 [使用者流程]
  8. 選取您要測試的註冊或登入使用者流程 ([建議] 類型)。
  9. 選取 [執行使用者流程]。
  10. 針對 [應用程式],選取您先前註冊名為 webapp1 的 Web 應用程式。 Reply URL 應顯示 https://jwt.ms
  11. 選取 [執行使用者流程]。
  12. 使用您已重設密碼的使用者帳戶登入。
  13. 您現在必須變更使用者的密碼。 變更密碼,然後選取 [繼續]。 權杖會傳回到 https://jwt.ms,而且應該會向您顯示。

設定自訂原則

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

上傳並測試原則

  1. 登入 Azure 入口網站
  2. 選取入口網站工具列中的 [目錄 + 訂用帳戶] 圖示,以確定正在使用的目錄包含您的 Azure AD B2C 租用戶。
  3. 在 [入口網站設定] | [目錄 + 訂用帳戶] 頁面上,在 [目錄名稱] 清單中尋找您的 Azure AD B2C 目錄,然後選取 [切換]。
  4. 選擇 Azure 入口網站左上角的 [所有服務],然後搜尋並選取 [Azure AD B2C]。
  5. 選取 [識別體驗架構]。
  6. 在 [自訂原則] 中,選取 [上傳原則]。
  7. 選取 TrustFrameworkExtensionsCustomForcePasswordReset.xml 檔案。
  8. 選取 [上傳] 。
  9. 針對信賴憑證者檔案 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"
}

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

密碼到期時間

密碼到期持續時間預設值為 90 天。 值可透過適用於 Windows PowerShell 的 Azure Active Directory 模組使用 Set-MsolPasswordPolicy Cmdlet 設定。 此命令會更新租用戶,讓所有使用者密碼在您設定的天數之後過期。

後續步驟

設定自助式密碼重設