Q

Active Directory環境でパスワードを忘れてしまったため,管理者にパスワードを変更してもらいました。管理者から暫定パスワード(newpassword)を受け取り,ログオン時に独自のパスワードを変更するよう指示されました。そのパスワードでログオンすると,パスワード変更要求の画面が表示されるので,古いパスワードの欄に暫定パスワードを入力し,新しいパスワードの欄に独自のパスワードを入力しましたが,パスワードの変更処理が正常に動作しません。何が問題なのでしょう?

A

この問題は,パスワードを変更処理したドメイン・コントローラ(DC)とログオン処理しているDCのサイトが異なるなど,DC間でレプリケーションが遅延する場合に発生します。この問題を理解するには,PDCエミュレータ(FSMO)の動作とパスワードの変更と認証の処理を理解する必要があります。

 Active DirectoryにおけるPDCエミュレータは,ユーザーのパスワードに関して次のような処理をします。なお,パスワードの変更自体は各DCで処理されます。

●ドメイン内のDCでパスワードの変更が発生するとPDCエミュレータに通知する

●ドメイン内のDCでパスワード認証に失敗すると,認証要求はPDCエミュレータに通知され処理される。

●ドメイン内のDCで認証に数回失敗しているユーザーが認証に成功すると,ロックアウト用のカウンタをPDCエミュレータでリセット処理する。

パスワード変更とドメイン認証の処理
 今回のパスワードの変更処理と認証時の動作では,以下のような事態が発生していると思われます(図6)。

図6●Windows 2000のActive Directory環境ではPDCエミュレータのドメイン・コントローラ(DC)を介したレプリケーションのタイミングによってログオン情報の不整合が生じる

 (1)管理者がパスワードを「newpassword」にリセットした際,管理者がパスワードを変更したDCが,ユーザーが通常認証に使用しているDCとは異なっている。

 (2)ユーザーは「newpassword」を使用してログオンしようとしても,ユーザーが認証を要求するDCにまだ新しいパスワードが複製されていないため,「newpassword」がパスワードとして認識されません。

 (3)すると,このDCからログオン要求がPDCエミュレータに通知され,PDCエミュレータはログオン認証すると同時に管理者が設定した「ユーザーによるパスワードの変更が必要である」というメッセージをDCに返します。そのため,ユーザーにはパスワード変更の要求が表示されます。

 (4)しかし,ユーザーが古いパスワードに「newpassword」を入力しても,そのパスワードの変更要求は認証先のDCにのみ渡されます。そのDCは「newpassword」を認識できません。

 この問題はDC間のレプリケーションの遅延により発生するため,時間が経過して複製が完了すると問題は自動的に解消されます。さらに,Windows 2000のサービス・パック(SP)4では,この問題を解決するため,ユーザー個別に即時レプリケーションするよう改良されています。この現象が発生する場合は,まだSP4を適用していないDCが残っているものと思われます。これらにSP4を適用すれば,今後問題は発生しなくなります。

瀧澤 俊臣