今週からしばらく、信頼関係について取り上げる。一般的な推奨設定、つまり単一のドメインだけで構成するActive Directoryでは必要がない機能だが、複数のドメインを階層化する場合には自動的に設定しているし、NTドメインからActive Directoryへ、あるいはActive Directory同士でアカウント情報などの移行を行う際に、この機能に出番がある。

信頼関係の概要

信頼関係は、複数のドメインを併用している場合に用いる機能だ。この機能を利用すると、異なるドメインのユーザー/グループに対してアクセス権を設定できる等の利点がある。

信頼関係には、「信頼元(信頼する側)」と「信頼先(信頼される側)」という概念がある。たとえば、TOKYO(tokyo.company.local)ドメインとOSAKAドメイン(osaka.company.local)と、2個のドメインが存在する場合について解説しよう。これらのドメインは、それぞれ異なるフォレストに属しているものとする(その理由については後述)。

まず、TOKYOドメインのドメインコントローラで「OSAKAドメインを信頼する」と設定する(信頼元)。一方、OSAKAドメインのドメインコントローラでは「TOKYOドメインから信頼される」と設定する(信頼先)。すると、TOKYOドメインでは自ドメインだけでなく、OSAKAドメインに所属するユーザー/グループに対しても、アクセス権を設定できるようになる。つまり、「信頼元ドメインは、信頼先ドメインのユーザー/グループ情報にアクセスしてアクセス権設定の対象にできる」という関係が成立する。

注意しなければならないのは、この状態では逆の設定は行えない点だ。つまり、OSAKAドメインでは、TOKYOドメインに所属するユーザー/グループにアクセス許可を設定することはできない。これを実現するには、信頼元と信頼先の関係を逆にして、信頼関係の設定を行わなければならない。

信頼関係は双方向に設定することもできる。つまり、一方を信頼元、他方を信頼先にする設定を行った後で、向きを変えて信頼関係の設定を繰り返すわけだ。こうすることで、互いに相手ドメインのユーザー/グループにアクセス許可を設定できるようになる。

信頼関係を設定すると、異なるドメインに属するユーザー/グループに対してアクセス権を設定できる

なお、ひとつのフォレストに複数のドメインを用意してドメインツリーを構成した場合、そのドメインツリーを構成する個々のドメインの間では、自動的に双方向の信頼関係を設定する。そのため、同じフォレストに属するドメイン同士であれば、特に信頼関係の設定を行わなくても、相互にアクセス権の設定を行えるようになっている。

出力方向/入力方向、推移的な信頼関係

Windows Server 2003から仕様が変わり、信頼関係を設定する際の画面で「出力方向」「入力方向」という言葉を用いるようになった。これは、一方のドメインを基準にして見た際に、他のドメインを信頼することを「出力方向」、他のドメインから信頼されることを「入力方向」と呼んでいるものだ。いいかえれば、信頼元ドメインから信頼先ドメインに向かう信頼は、信頼元ドメインでは「出力方向」、信頼先ドメインでは「入力方向」という意味になる。信頼関係の概念や動作には違いはないが、用語が違うわけだ。

もうひとつ、「推移的な信頼関係」という言葉がある。これもWindows Server 2003から登場した言葉で、フォレスト間信頼を設定する際に関わってくる。つまり、フォレストルートドメイン同士で信頼関係を設定すると、フォレストルートドメインだけでなく、その配下にあるサブドメインも自動的に信頼するという意味になる。くだけた言い方をすれば、「友達の友達は、また友達」というわけだ。

こうすれば、フォレスト間信頼を設定する際の手間を最小限に抑えることができる。もしも個別のドメインごとに信頼関係を設定しなければならないとすると、設定作業が複雑になるだけでなく、信頼するケースと信頼しないケースが生じて、管理も煩雑になってしまう。

信頼元から信頼先に向かう信頼は、信頼元では「出力方向」、信頼先では「入力方向」と呼ばれる(Windows Server 2003以降に限る)

どんなときに信頼関係が必要?

信頼関係はもともと、ドメインの階層化ができない上に、ひとつのドメインに収容できるオブジェクトの数に40,000個という制限があったNTドメインで、複数のドメインを組み合わせて利用する際に活用していた機能だ。大規模な企業ユーザーではしばしば、NTドメインの上限を超えるオブジェクトを作成することになるため、地域別、部門別、あるいはコンピュータアカウントとユーザーアカウント、というように用途別に複数のドメインを用意して、ドメイン間で信頼関係を設定して対処していた。

一方、Active Directoryではオブジェクトの数に上限はないため、オブジェクトの数を理由として複数のドメインを作成する理由はない。また、ドメインコントローラを複数設置できる上に、いずれ本連載で取り上げるサイトの機能を活用すれば、遠隔拠点も含めて単一のドメインに集約できる。したがって、通常はドメインはひとつだけで済ませることになり、信頼関係に出番はない。

こうした事情により、Active Directoryで信頼関係を設定しなければならない場面は限られる。具体的に例を挙げると、以下のような場面だ。

NTドメインとActive Directoryを共存させるケース

何かの事情でNTドメインを平行して使い続ける場合、あるいはNTドメインからActive Directoryに移行する場面が該当する。後者の場合、既存のNTドメインとは別にActive Directoryを立ち上げて、ADMT(Active Directory Migration Toolkit)を使って、ユーザーアカウント、グループ、コンピュータアカウントの情報をActive Directory側に移動する。その際に、移行元となるNTドメインと、移行先となるActive Directoryドメインの間で双方向の信頼関係を設定する必要がある。

複数のフォレストを構築せざるを得ないケース

何かの事情により複数のドメインが必要で、かつ別々のフォレストになってしまう場合が該当する。企業の買収によって、それまで存在しなかった異なるフォレストが加わった場合にも、このパターンになるだろう。ADMTによって単一のドメインに統合することもできるが、複数のフォレストが存在する状態を維持せざるを得ない場合には、フォレスト間信頼を設定することでアクセス権の設定が容易になる(Windows Server 2003以降が必要)。