Active Directory(アクティブ・ディレクトリ)はWindows 2000以降で導入されたWindowsネットワークを統合的に管理するしくみです。Active Directoryを使うことでサーバー・マシンが個別に管理していたユーザーとパスワードの対応表(ユーザー管理台帳)などを,ドメイン・コントローラというサーバー・マシンが集中管理し,ほかのサーバーやクライアント・マシンはその情報を参照するようにできます。
こうしておけば,クライアント・ユーザーがパスワードを変更するとき,ドメイン・コントローラの情報を書き換えるだけで済みます。管理者も,人事異動などのときに,ユーザーを追加したり削除する作業をドメイン・コントローラに対して行えば済みます。個々のサーバー・マシンに対してユーザー情報を更新する必要がなくなり,管理の手間を大幅に削減できるわけです。
リソースの検索にDNSを使う
ただし,Active Directoryを使うためにはDNSサーバーを運用する必要があります。DNSサーバーは,インターネットのリソース(コンピュータ名,メール・サーバー名など)を管理するために作られました。Active Directoryは,このしくみを流用してWindowsネットワークのリソースを探すために利用します。
例えば,Active Directoryのドメインに所属するコンピュータにユーザーがログオンするときに,DNSサーバーが利用されます(図1[拡大表示])。流れを確認しておきましょう。
ユーザーの情報はドメイン・コントローラのユーザー台帳で管理されています。したがって,ユーザーがコンピュータにログオンするためには,ドメイン・コントローラにアクセスして認証を受ける必要があります。しかし,自分を管理しているドメイン・コントローラはどれかわかりません。
そこでログオンを受け付けたクライアント・パソコンは,DNSサーバーに対してユーザーが所属するドメインの名前を通知し,そのドメインを管理しているドメイン・コントローラの名前を教えてもらいます。
DNSがないとログインできない
すると,DNSサーバーは適切なドメイン・コントローラの名前(DNS名)を通知してきます。
実際には,ドメイン・コントローラの情報はサービス(SRV)レコードとしてDNSサーバーに登録されます。図2[拡大表示]でハイライト表示している「_ldap」の行がドメイン・コントローラの情報を示しています。
ここでは「testdom.jp」というドメインを管理するドメイン・コントローラが「server1.testdom.jp」であると示しています。ここから類推できるように,ドメイン・コントローラはLDAP(エルダップ)*サーバーとしてDNSサーバーに登録されています。
ドメイン・コントローラの名前を取得したクライアント・パソコンは,その名前に対応するIPアドレスを調べます。ここでもDNSサーバーに問い合わせ要求パケットを送るのが一般的です。
こうして得たIPアドレスによって,クライアント・パソコンはようやくドメイン・コントローラにアクセスできるようになります。そして,パソコンはユーザーの認証をドメイン・コントローラに依頼するのです。
もしDNSサーバーが存在しなかったり,DNSサーバーに必要な情報が登録されていないと,一連の動作は失敗します。つまり,ユーザーはActive Directoryのドメインへアクセスできなくなってしまいます。
なお図2では,しくみを理解しやすくするためにDNSサーバーとドメイン・コントローラを別々のコンピュータで運用するように説明しました。
もちろん別々のコンピュータを使って運用することは可能ですが,実際にActive Directoryを構築する場合は,Windowsに組み込まれたDNSサーバー・ソフトを利用するのが一般的です。こうするとDNSサーバーとドメイン・コントローラが連携し,管理を一元化できるからです。
●筆者:湯山 拓(ゆやま たく) NECソフト ICTシステム事業部 |