重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
開始する前にこのページの上部にある ポリシーの種類 セレクターを使用して、設定するポリシーの種類を選択します。 Azure Active Directory B2C には、ユーザーがアプリケーションを操作する方法を定義する 2 つの方法 (定義済みのユーザー フローを使用する、または完全に構成可能なカスタム ポリシーを使用する) があります。 この記事で必要な手順は、方法ごとに異なります。
概要
管理者は、 ユーザーが自分のパスワードを 忘れた場合に、ユーザーのパスワードをリセットできます。 または、パスワードのリセットを強制する必要があります。 この記事では、これらのシナリオでパスワードのリセットを強制する方法について説明します。
管理者が Azure portal を使用してユーザーのパスワードをリセットすると、 forceChangePasswordNextSignIn 属性の値が true
に設定されます。
サインインとサインアップの体験では、この属性の値がチェックされます。 ユーザーがサインインを完了した後、属性が true
に設定されている場合、ユーザーは自分のパスワードをリセットする必要があります。 その後、属性の値が false
戻るに設定されます。
パスワード リセット フローは、サインインにパスワードを含む 電子メール アドレス または ユーザー名 を使用する Azure AD B2C のローカル アカウントに適用されます。
[前提条件]
- ユーザーが サインアップしてアプリケーションにサインインできるように、ユーザー フローを作成します。
- Web アプリケーションを登録します。
- 「Active Directory B2C でのカスタム ポリシーの概要」の手順を完了してください。 このチュートリアルでは、Azure AD B2C テナント構成を使用するようにカスタム ポリシー ファイルを更新する方法について説明します。
- Web アプリケーションを登録します。
ユーザー フローを構成する
サインアップまたはサインイン ユーザー フローで [強制パスワード リセット ] 設定を有効にするには:
- Azure portal にサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
- Azure portal で、 [Azure AD B2C] を検索して選択します。
- ユーザーフローを選択します。
- カスタマイズしたいサインアップとサインイン、またはサインイン ユーザー フロー (推奨のタイプ) を選択します。
- 左側のメニューの [設定] で、[プロパティ] を選択します。
- [ パスワードの構成] で、[ パスワードの強制リセット] を選択します。
- 保存 を選択します。
ユーザー フローをテストする
- ユーザー管理者またはパスワード管理者として Azure portal にサインインします。 使用可能なロールの詳細については、「 Microsoft Entra ID での管理者ロールの割り当て」を参照してください。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
- Azure portal で、 [Azure AD B2C] を検索して選択します。
- ユーザーを選択します。 パスワード リセットのテストに使用するユーザーを検索して選択し、[ パスワードのリセット] を選択します。
- Azure portal で、 [Azure AD B2C] を検索して選択します。
- ユーザーフローを選択します。
- テストするサインアップまたはサインイン ユーザー フロー ( 推奨の種類) を選択します。
- ユーザー フローを実行する を選択します。
-
[アプリケーション] で、以前に登録した webapp1 という名前の Web アプリケーションを選択します。
応答 URL に
https://jwt.ms
が表示されます。 - ユーザー フローを実行する を選択します。
- パスワードをリセットするユーザー アカウントでサインインします。
- ユーザーのパスワードを変更する必要があります。 パスワードを変更し、[ 続行] を選択します。 トークンは
https://jwt.ms
に返され、表示されます。
カスタム ポリシーを構成する
GitHub でパスワードの強制リセット ポリシーの例を取得します。 各ファイルで、 yourtenant
文字列を Azure AD B2C テナントの名前に置き換えます。 たとえば、B2C テナントの名前が contosob2c の場合、 yourtenant.onmicrosoft.com
のすべてのインスタンスが contosob2c.onmicrosoft.com
になります。
ポリシーをアップロードしてテストする
- Azure portal にサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
- Azure portal の左上隅にある [すべてのサービス] を選択してから、[Azure AD B2C] を検索して選択します。
- [Identity Experience Framework] を選択します。
- [カスタム ポリシー] で、[ポリシーのアップロード] を選択します。
- TrustFrameworkExtensionsCustomForcePasswordReset.xml ファイルを選択します。
- [アップロード] を選択します。
- 証明書利用者ファイル TrustFrameworkExtensionsCustomForcePasswordReset.xmlに対して 手順 6 から 8 を繰り返します。
ポリシーを実行する
- B2C_1A_TrustFrameworkExtensions_custom_ForcePasswordResetアップロードしたポリシーを開きます。
- [ アプリケーション] で、先ほど登録したアプリケーションを選択します。 トークンを表示するには、 応答 URL に
https://jwt.ms
が表示されます。 - [今すぐ実行] を選択します。
- パスワードをリセットするユーザー アカウントでサインインします。
- ユーザーのパスワードを変更する必要があります。 パスワードを変更し、[ 続行] を選択します。 トークンは
https://jwt.ms
に返され、表示されます。
次回のログイン時にパスワードのリセットを強制する
次回のログイン時にパスワードを強制的にリセットするには、MS Graph Update ユーザー 操作を使用してアカウント パスワード プロファイルを更新します。 これを行うには、 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 コマンドレットを使用して構成できます。 このコマンドは、構成した日数後にすべてのユーザーのパスワードが期限切れになるようにテナントを更新します。 例えば次が挙げられます。
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
は、パスワードを変更する前に有効な期間を日数で指定します。
関連コンテンツ
セルフサービス パスワード リセットを設定します。