前回は、Active Directoryの構成を検討する際の検討事項およびFSMOの機能について見てきました。
Windows Server 2000以降で提供されたActive Directory認証においては、Windows NT Serverが提供していたNTドメイン環境では不要だったDNSと時刻同期の仕組みが必要となりました。まずは、Windows Server 2000以降に導入されたActive Directoryがなぜ時刻同期を必要とするのかについて簡単に見て行きたいと思います。
Kerberos認証と時刻同期
Windows 2000 Server以降導入されたActive Directoryにてドメイン認証を実施する場合、Kerberosによる認証が行われます。
Kerberosではネットワークサービスへのアクセス用にチケットを発行し、これらのチケットには、要求されたサービスへのアクセスに対してユーザ本人であることを確認するための暗号化された情報が格納されます。その結果として、ユーザはパスワードなどの資格情報の入力を行わずに認証処理ができるようになります。
Kerberosを利用するActive Directoryの認証では、資格情報の偽装を防止するため、既定ではサーバとクライアントの時刻が5分以内である必要があります。
ドメインコントローラと時間が5分以上ずれた場合はドメインにログオンできなくなるため、クライアントがドメインコントローラと時刻同期できる仕組み(ネットワーク通信など)を考慮する必要があります。
PDCエミュレータのドメインコントローラの時刻を基本して、ドメイン全体を同期します。PDCエミュレータの役割を保持するドメインコントローラに対して、それ以外のドメインコントローラが時刻同期を行う形です。ドメインのメンバサーバやクライアントは、自身がログオンしているドメインコントローラに対して時刻同期を行います。
外部NTPサーバとの時刻同期について
Active Directory環境は、PDCエミュレータに対して同期を行う仕組みであることを紹介しました。
他のシステムのサーバと同期を取りたい場合は、個別にサーバ単位で設定してしまうと、ドメインコントローラと時刻がずれて認証ができなくなる可能性があるため、通常はPDCエミュレータに対して設定を行います。
PDCエミュレータから外部NTPサーバへは、以下のいずれかの方法で参照することができます。
- コマンドでの設定
- レジストリへの反映
具体的な設定方法については、後ほど紹介いたします。
まとめ
Active Directoryの認証方式としてはKerberos認証が用いられており、その中でドメインコントローラとクライアントの時刻が5分以上ずれている場合は認証ができない仕様のため、時刻同期の仕組みが不可欠となっています。
すべてのドメインコントローラは、PDCエミュレータの役割を保持するドメインコントローラへ時刻同期を行い、メンバサーバやクライアントコンピュータは自身がログオンするドメインコントローラへ時刻同期を行います。
また、外部のNTPサーバへ同期するためには、ファイアウォールなどでUDPの123番ポートを同期先のNTPサーバに対して通信が可能なように構成する必要があります。
Windows 2000 Server以前は、時刻同期の仕組みとして、Simple Network Time Protocol(SNTP)に対応していました。SNTPの仕様については、RFP1769をあわせて参照ください。
Windows Server 2003以降では、時刻同期の仕組みとしては、Network Time Protocol(NTP)にも対応し、厳密な時刻同期も行えるようになりました。NTPの仕様については、RFC1305をあわせて参照ください。