在 Azure Active Directory B2C 中設定強制密碼重設流程
開始 之前,請使用 [選擇原則類型 選取器] 來選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先 定義的使用者流程 ,或透過完全可設定 的自訂原則 。 本文中每個方法所需的步驟都不同。
概觀
身為系統管理員,如果使用者忘記密碼,您可以 重設使用者的密碼 。 或者,您想要強制他們重設密碼。 在本文中,您將瞭解如何在這些案例中強制重設密碼。
當系統管理員透過 Azure 入口網站 重設使用者的密碼時,forceChangePasswordNextSignIn 屬性的值 會設定為 true
。 登入和註冊旅程圖 會檢查此屬性的值。 當使用者完成登入之後,如果 屬性設定為 true
,則使用者必須重設其密碼。 然後,屬性的值會設定回 false
。
密碼重設流程適用于使用電子郵件地址或 使用者名稱 搭配密碼進行登入的 Azure AD B2C 本機帳戶。
必要條件
- 建立使用者流程 ,讓使用者可以註冊並登入您的應用程式。
- 註冊 Web 應用程式 。
- 完成開始使用 Active Directory B2C 中的自訂原則中的 步驟
- 註冊 Web 應用程式 。
設定您的使用者流程
若要在註冊或登入使用者流程中啟用 強制密碼重 設設定:
- 登入 Azure 入口網站。
- 如果您有多個租使用者的存取權,請選取 頂端功能表中的 [設定 ] 圖示,從 [目錄 + 訂 用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 選取 [ 使用者流程 ]。
- 選取要自訂的註冊和登入,或登入使用者流程(類型為 [建議 ] 。
- 在左側功能表的 [設定] 下,選取 [屬性]。
- 在 [密碼設定] 底下 ,選取 [ 強制密碼重設 ]。
- 選取 [儲存]。
測試使用者流程
- 以使用者系統管理員或密碼系統管理員身分登入 Azure 入口網站 。 如需可用角色的詳細資訊,請參閱 在 Microsoft Entra ID 中指派系統管理員角色。
- 如果您有多個租使用者的存取權,請選取 頂端功能表中的 [設定 ] 圖示,從 [目錄 + 訂 用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 選取使用者。 搜尋並選取您將用來測試密碼重設的使用者,然後選取 [ 重設密碼 ]。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 選取 [ 使用者流程 ]。
- 選取您想要測試的註冊或登入使用者流程(類型為 [建議 ] 。
- 選取執行使用者流程。
- 針對 [ 應用程式 ],選取您先前註冊的 Web 應用程式名為 webapp1 。 回復 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 入口網站左上角的 [所有服務 ],然後搜尋並選取 [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"
}
設定密碼到期原則之後,您也必須設定強制密碼重設流程,如本文所述。
密碼到期時間
根據預設,密碼設定為不會過期。 不過,您可以使用 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
表示使用者收到第一個通知,表示密碼到期日前幾天的時間長度,指出其密碼即將到期。
下一步
設定 自助式密碼重設 。