在 Azure Active Directory B2C 中設定強制密碼重設流程
開始之前,使用 [選擇原則類型] 選取器來選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先定義的使用者流程,或透過完全可設定的自訂原則。 此文章中所需的步驟隨各方法而異。
概觀
如果使用者忘記自己的密碼,您可以透過管理員身分重設使用者的密碼。 或者,您想要強制他們重設密碼。 在本文中,您將了解如何在這些案例中強制密碼重設。
管理員透過 Azure 入口網站重設使用者的密碼時,會將 forceChangePasswordNextSignIn 屬性的值設定為 true
。 登入和註冊旅程圖會檢查此屬性的值。 使用者完成登入之後,如果屬性設定為 true
,則使用者必須重設密碼。 然後,屬性的值會設回 false
。
密碼重設流程適用於 Azure AD B2C 中的本機帳戶,而本機帳戶搭配使用電子郵件地址或使用者名稱與密碼,以進行登入。
必要條件
- 建立使用者流程,讓使用者能夠註冊並登入您的應用程式。
- 註冊 Web 應用程式。
設定使用者流程
在註冊或登入使用者流程中啟用 [強制密碼重設] 設定:
- 登入 Azure 入口網站。
- 確定您使用的目錄包含您的 Azure AD B2C 租用戶。 選取入口網站工具列中的目錄 + 訂閱圖示。
- 在 [入口網站設定] | [目錄 + 訂用帳戶] 頁面上,在 [目錄名稱] 清單中尋找您的 Azure AD B2C 目錄,然後選取 [切換]。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 選取 [使用者流程]。
- 選取您想要自訂的註冊和登入或登入使用者流程 ([建議] 類型)。
- 在左側功能表的 [設定] 底下,選取 [屬性]。
- 在 [密碼設定] 底下,選取 [強制密碼重設]。
- 選取 [儲存]。
測試使用者流程
- 以使用者管理員或密碼管理員身分,登入 Azure 入口網站。 如需可用角色的詳細資訊,請參閱在 Azure Active Directory 中指派系統管理員角色。
- 確定您使用的目錄包含您的 Azure AD B2C 租用戶。 選取入口網站工具列中的目錄 + 訂閱圖示。
- 在 [入口網站設定] | [目錄 + 訂用帳戶] 頁面上,在 [目錄名稱] 清單中尋找您的 Azure AD B2C 目錄,然後選取 [切換]。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 選取 [使用者]。 搜尋並選取您將用來測試密碼重設的使用者,然後選取 [重設密碼]。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 選取 [使用者流程]。
- 選取您要測試的註冊或登入使用者流程 ([建議] 類型)。
- 選取 [執行使用者流程]。
- 針對 [應用程式],選取您先前註冊名為 webapp1 的 Web 應用程式。 Reply URL 應顯示
https://jwt.ms
。 - 選取 [執行使用者流程]。
- 使用您已重設密碼的使用者帳戶登入。
- 您現在必須變更使用者的密碼。 變更密碼,然後選取 [繼續]。 權杖會傳回到
https://jwt.ms
,而且應該會向您顯示。
設定自訂原則
取得 GitHub 上的強制密碼重設原則範例。 在每個檔案中,將字串 yourtenant
取代為您 Azure AD B2C 租用戶的名稱。 例如,如果 B2C 租用戶名稱是 contosob2c,則所有 yourtenant.onmicrosoft.com
執行個體都會變成 contosob2c.onmicrosoft.com
。
上傳並測試原則
- 登入 Azure 入口網站。
- 選取入口網站工具列中的 [目錄 + 訂用帳戶] 圖示,以確定正在使用的目錄包含您的 Azure AD B2C 租用戶。
- 在 [入口網站設定] | [目錄 + 訂用帳戶] 頁面上,在 [目錄名稱] 清單中尋找您的 Azure AD B2C 目錄,然後選取 [切換]。
- 選擇 Azure 入口網站左上角的 [所有服務],然後搜尋並選取 [Azure AD B2C]。
- 選取 [識別體驗架構]。
- 在 [自訂原則] 中,選取 [上傳原則]。
- 選取 TrustFrameworkExtensionsCustomForcePasswordReset.xml 檔案。
- 選取 [上傳] 。
- 針對信賴憑證者檔案 TrustFrameworkExtensionsCustomForcePasswordReset.xml,重複步驟 6 到 8。
執行原則
- 開啟您已上傳的原則:B2C_1A_TrustFrameworkExtensions_custom_ForcePasswordReset。
- 針對 [應用程式],選取您稍早註冊過的應用程式。 若要查看權杖,[回覆 URL]
https://jwt.ms
應該顯示 。 - 選取 [立即執行]。
- 使用您已重設密碼的使用者帳戶登入。
- 您現在必須變更使用者的密碼。 變更密碼,然後選取 [繼續]。 權杖會傳回到
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 設定。 此命令會更新租用戶,讓所有使用者密碼在您設定的天數之後過期。
後續步驟
設定自助式密碼重設。