次の方法で共有


リモート ドメイン コントローラーでパスワードを変更した後、ユーザーがドメインにサインインできない

この記事では、リモート ドメイン コントローラーでパスワードを変更した後にユーザーがドメインにサインインできない問題の解決策を示します。

適用対象: Windows 2000
元の KB 番号: 318364

現象

プライマリ ドメイン コントローラー (PDC) フレキシブル シングル マスター操作 (FSMO) ロールを保持するリモート ドメイン コントローラーのユーザー アカウント パスワードを変更した後、ユーザーは新しいパスワードを入力してローカル ドメイン コントローラーにサインインできない場合があります。 ただし、ユーザーは以前のパスワードを使用してドメインにサインインできる場合があります。

原因

この動作は、次の条件に該当する場合に発生する可能性があります。

  • リモート ドメイン コントローラーは、ローカル ドメイン コントローラーでまだレプリケートされていません。

  • Kerberos は、ユーザー データグラム プロトコル (UDP) プロトコル (既定の構成) を使用するように構成されています。

  • ユーザーのセキュリティ トークンが大きすぎて UDP Kerberos メッセージに収まらない。

    Note

    ユーザーが多数のグループのメンバーである場合、ユーザーのセキュリティ トークンは大きくなる可能性があります。

この問題は、ローカル ドメイン コントローラーでの Kerberos 認証の再生防止機能が原因で発生します。 次の手順は、この動作を示しています。

  1. ユーザー アカウントのパスワードはリモート ドメイン コントローラーで変更されますが、その変更はまだローカル ドメイン コントローラーにレプリケートされていません。
  2. ユーザーは、新しいパスワードを使用してドメインにサインインしようとします。 Kerberos 認証サービス Exchange メッセージ (KRB_AS_REQ) は、UDP を使用してローカル ドメイン コントローラーに送信されます。
  3. ローカル ドメイン コントローラーは、新しいパスワード情報をまだ持っていないため、認証に失敗します。
  4. ローカル ドメイン コントローラーは、リモート PDC (KDCSVC!FailedLogon) に要求を転送します。
  5. FailedLogon関数では、要求のエントリが再生検出テーブルに入力され、KRB_AS_REQ メッセージがリモート PDC に送信されます。
  6. リモート PDC は要求を正常に認証し、ローカル ドメイン コントローラーに肯定的な応答を返します。
  7. ローカル ドメイン コントローラーは、応答が UDP パケットに対して大きすぎることを検出します。そのため、伝送制御プロトコル (TCP) を使用して要求を再送信する要求をクライアント コンピューターに送信します。
  8. クライアント コンピューターは、TCP を使用して認証要求を再送信します。
  9. ローカル ドメイン コントローラーは、(手順 3 のように) 新しいパスワード情報をまだ持っていないため、認証に失敗します。
  10. ローカル ドメイン コントローラーは、(手順 4 のように) リモート PDC ドメイン コントローラー (KDCSVC!FailedLogon) に要求を転送します。
  11. FailedLogon関数の再生検出チェックでは、この要求のエントリが既に再生検出テーブルに存在するため、KRB_AP_ERR_REPEAT メッセージが返されます。 これは、手順 5 で作成されたエントリです。

認証の試行が失敗します。

解決方法

この問題を解決するには、Windows 2000 用の最新のサービス パックを入手します。

この修正プログラムの英語版には、次の表に示すファイル属性 (またはそれ以降) があります。 これらのファイルの日付と時刻は、協定世界時 (UTC) で一覧表示されます。 ファイル情報を表示すると、ローカル時刻に変換されます。 UTC と現地時刻の違いを見つけるには、コントロール パネルの [日付と時刻] ツールの [タイム ゾーン] タブを使用します。

Date Time Version Size File name
-----------------------------------------------------------
22-Mar-2002 23:55 5.0.2195.4959 123,664 Adsldp.dll
30-Jan-2002 00:52 5.0.2195.4851 130,832 Adsldpc.dll
30-Jan-2002 00:52 5.0.2195.4016 62,736 Adsmsext.dll
22-Mar-2002 23:55 5.0.2195.5201 356,624 Advapi32.dll
22-Mar-2002 23:55 5.0.2195.4985 135,952 Dnsapi.dll
22-Mar-2002 23:55 5.0.2195.4985 95,504 Dnsrslvr.dll
22-Mar-2002 23:56 5.0.2195.5013 521,488 Instlsa5.dll
22-Mar-2002 23:55 5.0.2195.5246 145,680 Kdcsvc.dll
22-Mar-2002 23:50 5.0.2195.5246 199,952 Kerberos.dll
07-Feb-2002 19:35 5.0.2195.4914 71,024 Ksecdd.sys
02-Mar-2002 21:32 5.0.2195.5013 503,568 Lsasrv.dll
02-Mar-2002 21:32 5.0.2195.5013 33,552 Lsass.exe
08-Dec-2001 00:05 5.0.2195.4745 107,280 Msv1_0.dll
22-Mar-2002 23:55 5.0.2195.4917 306,960 Netapi32.dll
22-Mar-2002 23:55 5.0.2195.4979 360,208 Netlogon.dll
22-Mar-2002 23:55 5.0.2195.5221 917,264 Ntdsa.dll
22-Mar-2002 23:55 5.0.2195.5201 386,832 Samsrv.dll
30-Jan-2002 00:52 5.0.2195.4874 128,784 Scecli.dll
22-Mar-2002 23:55 5.0.2195.4968 299,792 Scesrv.dll
30-Jan-2002 00:52 5.0.2195.4600 48,400 W32time.dll
06-Nov-2001 19:43 5.0.2195.4600 56,592 W32tm.exe
22-Mar-2002 23:55 5.0.2195.5011 125,712 Wldap32.dll

回避策

この問題を回避するには、ローカル ドメイン コントローラーでユーザー アカウントのパスワードを変更するか、KERBERos で UDP (ユーザー データグラム プロトコル) ではなく TCP (伝送制御プロトコル) を使用するように強制します。

詳細については、「 Windows で UDP ではなく TCP を Kerberos に強制的に使用させる方法を参照してください。

状態

Microsoft は、この記事の冒頭に記載されている Microsoft 製品の問題であることを確認しました。 この問題は、Windows 2000 Service Pack 3 で最初に修正されました。

詳細

Kerberos の再生防止機能により、認証サーバーが同じパケットを 2 回受信できなくなります。 リプレイ攻撃とは、有効なデータ転送が悪意を持って、または不正に繰り返される攻撃です。これは、発信元またはデータを傍受して再送信する敵対者によって行われます。 攻撃者は、そのユーザーの資格情報を使用して認証を試みる際に、有効なユーザーのユーザー名とパスワードを "再生" しようとする可能性があります。