Active Directoryの仕組み
Active Directoryにより、企業内システムのID管理のプラットフォームが提供されます。Active Directoryをインストールしたサーバーそれぞれの機能を解説することで、このActive Directoryの仕組みの全体像を紹介します。
ドメインコントローラ
Active Directoryをインストールしたサーバーは、ドメインコントローラ(DC)と呼ばれます。このドメインコントローラがActive Directoryのサービスを提供するサーバーとなります。
ドメインコントローラには、NTDSと呼ばれるデータベースファイル(ntds.dit)が作成されます。このNTDSに、Active Directoryのデータが格納されます。ドメインコントローラは、このデータベースを利用して、ユーザーアカウントの検索や認証、グループポリシーやセキュリティポリシーの適用などを行います。
このデータベースファイルには、Active Directoryのスキーマやオブジェクト(ある特定のデータの集合)のデータが含まれています。
「スキーマ」とは、Active Directoryに保存されるオブジェクトのデータ形式(クラス)を決めるデータ定義であり、Active Directoryではスキーマによって定義されたオブジェクトを使って、ユーザーアカウントやコンピュータアカウントなどのデータが保存されています。
Active Directoryをインストールすると、デフォルトで定義されているスキーマによってさまざまなオブジェクトが作成できる状態になります。このスキーマはユーザーが拡張できるので、スキーマを変更することで保存できるデータ項目を増やしたり、新しいオブジェクトをスキーマに定義して、オリジナルアプリケーションで利用するためのデータをActive Directory内に保存したり、といったことが可能です。
ユーザーアカウントといった各種のデータは、このスキーマで定義されたクラスから、実際のデータを保存するデータ集合であるオブジェクトとして、Active Directory内で保存されています。
Microsoft Exchange Serverも、Active Directoryのスキーマを拡張するアプリケーションの一つです。Exchange Serverをインストールすると、Active Directoryのスキーマを拡張して、Exchange Serverが使う独自の情報を、Active Directory内にオブジェクトとして保存できるようにします。
マルチマスターレプリケーション
ドメインコントローラは、複数のサーバーで稼動させることが可能です。複数のサーバーをドメインコントローラとして用意することにより、サーバー障害発生時でもほかのドメインコントローラが、Active Directoryのサービスを継続して提供することが可能になります。
Active Directoryでは、ドメインコントローラが利用するデータベースファイルは、マルチマスターレプリケーションと呼ばれる、相互データ複製方式をとってデータベースのデータを複数のサーバーで利用できるようにしています(※一部のデータは、FSMOと呼ばれるマスターサーバーを持つ例外があります)。
マルチマスターレプリケーションでは、すべてのサーバーがデータベースを個々にアップデートすることが可能です。一つのサーバーがマスターとなってほかのサーバーに同期する形態とは違い、どのサーバーに接続してもデータベースの更新ができます。これによってサーバー同士が対等な関係で存在しあい、Single Point of Failureとなる箇所が発生しないようになっています。
このマルチマスターレプリケーションには一つの問題を含みます。それは、複数のサーバーで同じ項目が更新される可能性があり、更新が競合してしまうことがありうることです。Active Directoryではこの問題を解決するための対策がとられています。
その主要な対策が、更新シーケンス番号(USN)です。ドメインコントローラ上で行われるすべての変更には、更新シーケンス番号と呼ばれる番号が割り当てられます。この番号を使って最新の更新を特定し、最後に行われた変更が有効になるように調整されます。
更新シーケンス番号で最新の更新を解決できない場合は、更新時間をベースに最後の更新を特定する、といった競合解決が行われます。