Active Directory ドメイン サービスは、システム管理者が組織内のユーザーやリソースを管理するための仕組みを提供しているサービスです。ドメインは組織単位で管理されており、ドメイン内のリソースを利用できるのは認証されたドメイン ユーザーとなります。
Active Directory ドメイン サービスには「信頼関係」と呼ばれる仕組みがあり、信頼してもよいドメインに対してリソースを利用させることができます。一般的には、同じグループ会社や企業統合などで別のドメインを利用したいときに有効な機能です。
今回は、Active Directory の「信頼関係」について概要を紹介します。
信頼関係とは
Active Directory での「信頼関係」とは、異なるドメインやフォレスト間でリソースにアクセスできる仕組みです。
基本的には、ドメインで管理しているリソースにアクセスできるのは、ドメイン内で管理されているアカウントのみとなります。しかしながら、例えば同じグループ会社のドメインなど、信頼ができるドメインからのアクセスは許可したいことがあります。異なるドメインやフォレストにアクセスを許可したい場合は、ドメイン間で「信頼関係」を結びます。アクセスを許可するドメインは「信頼する」側のドメインとなり、アクセスを許可されるドメインは「信頼される」側のドメインとなります。
信頼関係を結ぶと、信頼される側は信頼する側のリソースを利用することができます。信頼関係は、下図のようなイメージとなります。

「ねこまる」は「ねこねこ」を信頼し、「ねこまる」の家の鍵を「ねこねこ」に渡します。信頼された「ねこねこ」は、渡された鍵で「ねこまる」の家にアクセスすることができます。「ねこまる」が「ねこねこ」を信頼していたとしても、「ねこまる」は「ねこねこ」の家にアクセスすることはできません。このように、信頼される側のみが信頼する側のリソースにアクセスできるという構成になります。
ドメインの信頼関係を結ぶ際に、信頼の方向を意識する必要があります。上図の例の場合、信頼する側の「ねこまる」から見ると出力方向の信頼関係となり、信頼される側の「ねこねこ」から見ると入力方向の信頼関係となります。このように片方のみのドメインを信頼する構成を片方向の信頼関係と呼びます。また、双方がお互いを信頼するように構成することもでき、その場合は双方向の信頼関係と呼びます。
ドメインでの信頼関係も同様に、「信頼される側」のドメインは「信頼する側」のドメインのリソースを使うことができるようになります。管理単位であるドメインを超えて、別のドメインも利用したい場合、下図のようにドメイン間で信頼関係を結ぶことで構成できます。

ドメインの信頼関係は、[Active Directory ドメインと信頼関係] の管理ツールにて作成します。ドメインの信頼関係を作成する際に、信頼関係の方向と種類を指定する必要があります。そのため、信頼関係の方向と種類について説明していきます。
信頼関係の方向
[Active Directory ドメインと信頼関係] にて信頼関係を作成する際に、信頼関係の方向を指定する必要があります。信頼関係の方向には、「入力方向の信頼」、「出力方向の信頼」、「双方向の信頼」の3種類があります。
例えば、nekomaru.com ドメインが fish.comドメインのリソースを利用するために信頼関係を結ぶ場合、nekomaru.com ドメインが fish.com ドメインから信頼される必要があります。つまり、nekomaru.com ドメインにとっては、入力方向の信頼関係を結ぶことになります。

逆に、nekomaru.com ドメインのリソースを fish.com ドメインのユーザーに利用させたいという場合には、nekomaru.com ドメインは fish.com ドメインを信頼する必要があります。これは、nekomaru.com ドメインから見ると、出力方向の信頼関係を結ぶこととなります。
双方のドメインでお互いにリソースを利用したい場合は、お互いを信頼する必要があるので、双方向の信頼関係を結びます。
信頼関係の種類
[Active Directory ドメインと信頼関係] にて信頼関係を作成する際に、信頼関係の種類を指定する必要があります。信頼関係の種類には、以下の4種類があります。
- 外部信頼
- フォレスト信頼
- ショートカット信頼
- 領域信頼
領域信頼は、非 Windows Kerberos 領域と Windows Server 2008/Windows Server 2008 R2 のドメインとの間に構築する信頼関係となります。Active Directory のドメイン同士では利用しないため、ここでは「外部信頼」「フォレスト信頼」「ショートカット信頼」について説明します。
外部信頼
「外部信頼」とは、異なるフォレストのドメイン間で結ぶ信頼関係のことです。外部信頼は推移性がない信頼関係となり、外部信頼を結んでいるドメイン同士で完結しています。

例えば、上図のように別フォレストにある child.nekomaru.com ドメインと sub.fish.com ドメインの間で外部信頼を結んでいたとします。外部信頼は推移性がない信頼関係となるため、信頼関係を持っているのは、child.nekomaru.com ドメインと sub.fish.com ドメインのみです。child.nekomaru.comドメインは、fish.com フォレストにある別ドメインの fish.com のリソースにはアクセスできません。
フォレスト信頼
「フォレスト信頼(Forest Trust)」とは、異なるフォレスト間で結ぶ信頼関係のことです。より厳密には、双方のフォレスト ルート ドメイン同士で信頼を確立します。フォレスト信頼は Windows Server 2003 以降の Active Directory でサポートされているため、双方のフォレスト機能レベルが Windows Server 2003 以上である必要があります。
フォレスト信頼は推移的(transitive)な信頼で、信頼で結ばれた二つのフォレスト内の全てのドメイン間で相互アクセスの前提(認証の受け入れ)が成立します(※一方向/双方向はいずれも構成可能)。例えば、フォレスト nekomaru.com とフォレスト fish.com の間で双方向のフォレスト信頼を結んでいる場合、nekomaru.com フォレスト内の tokyo.sub.nekomaru.com ドメインと、fish.com フォレスト内の sub.fish.com ドメインの間にも、推移的な信頼関係が成立します。

ただし、フォレスト信頼は複数のフォレスト間で推移性ももつことはありません。例えば、Forest1 と Forest2 の間でフォレスト信頼を結んでおり、Forest2 と Forest3 の間でフォレスト信頼を結んでいる環境においても、Forest1 と Forest3 の間には信頼関係はありません。

ショートカット信頼
「ショートカット信頼」とは、推移性な信頼関係があるドメイン同士で直接信頼関係を結び、認証のパスを短縮できる信頼関係です。
同一フォレスト内や、フォレスト信頼が結ばれているフォレスト内のドメインなどには推移的な信頼関係があります。推移的な信頼関係を利用して、他のドメインのリソースを使用する場合、直接信頼関係が結ばれているドメインを経由して、認証要求が転送されていく動作となります。ドメイン ツリーの階層が深くなると、下位ドメインから上位ドメインにアクセスしたり、他のドメイン ツリーにアクセスしたりするのに階層をたどっていくため、ユーザーの認証に時間がかかるようになります。

ショートカット信頼を作成すると、推移性な信頼関係があるドメイン同士で直接信頼関係を結んでいるため、他ドメインを経由せずに直接認証を送信することができます。ショートカット信頼を作ることで、認証にかかる時間を短縮することができます。
信頼関係の認証範囲
信頼関係を作成する際に、信頼の方向を双方向もしくは一方向に指定した場合、出力方向の信頼の認証レベルとして以下の2項目を指定することができます。
- フォレスト全体の認証
信頼されたフォレストのユーザーは自動的に認証され、信頼したフォレスト内のアクセスが許可されているリソースに対して、自由にアクセスできる設定です。 - 認証の選択
信頼されたフォレストのユーザーは自動的に認証されません。そのため、アクセスする必要があるサーバーのコンピューター オブジェクトに対して、誰にアクセスを許可するかを設定する必要があります。さらに、ファイルサーバー内のファイルやフォルダーに対してもアクセス許可を設定する必要があります。
例えば、nekomaru.com ドメインのユーザーが、信頼関係を結んでいる fish.com ドメインのファイル サーバーにアクセスするシナリオについて考えます。前提条件として、アクセスしたいファイル サーバーの共有フォルダには Authenticated Users に対し「読み取り」のアクセス許可が与えられているとします。
ユーザーの [認証の範囲] で [フォレスト全体の認証] を選択した場合には、nekomaru.com ドメインにて認証された全ユーザーは、fish.com のファイル サーバーの共有フォルダにアクセスできるようになります。
一方、ユーザーの [認証の範囲] で [認証の選択] を選択した場合には、追加で認証の許可の設定を行う必要があります。具体的には、fish.com ドメインのドメイン コントローラーにて、[Active Directory ユーザーとコンピューター] を開き、ファイル サーバーのコンピューター アカウントのプロパティ画面の [セキュリティ] タブにて、nekomaru.com ドメインのユーザーに対して [認証の許可] のアクセス許可を付与します。
信頼関係に関する AD データ
ドメインの信頼関係の情報は、ドメイン コントローラーの AD データベースにて管理されています。信頼関係を作成すると、以下の AD オブジェクトが作成されます。
- 信頼ドメインオブジェクト(TDO:Trusted Domain Object)
信頼ドメインオブジェクト(TDO)には、信頼関係先のドメインの SID、信頼パスワードに関する情報が管理されています。
TDO は、CN=SYSTEM,DC=<ドメインの DN> コンテナの配下に、信頼関係先のフォレスト名の名前の AD オブジェクトが作成されます。TDO の AD オブジェクトのクラスは TrustedDomain クラスです。 - 信頼アカウント
信頼される側のドメインに、信頼アカウントが管理されます。信頼アカウントのパスワードは各ドメイン コントローラーの SAM データベース内に格納されます。
信頼アカウントは、CN=Users,DC=<ドメインの DN> コンテナの配下に信頼関係先のフォレスト名 + $ の名前のオブジェクトが作成されます。信頼アカウントの AD オブジェクトのクラスは User オブジェクトです。
信頼関係の構築の要件
ドメインと信頼関係を結ぶ前提条件として、以下の要件を満たしている必要があります。
- 信頼関係を結ぶドメイン同士で、ドメインの利用に必要なポートが解放されている
- 信頼関係先のドメイン名を名前解決できる
- PDC エミュレーターの役割をもつドメイン コントローラー同士で通信ができる
信頼関係を構築する作業をする前に、前提条件を満たすために、DNS サーバーの設定やネットワークの構成を見直してください。ドメイン環境において、解放が必要なポートの一覧については、以下の記事で紹介しております。
Active Directory ドメイン サービス(AD DS)とは、組織内のユーザーやリソースをシステム管理者が一元的に管理するためのサービスです。多くの企業や組織で導入されており、ユーザー認証やアクセス制御などの基盤として利用されてい[…]
信頼関係の構築手順
ドメインの信頼関係を構築する手順を紹介します。今回は、nekomaru.com と fish.com の2つのフォレストにおいて、双方向のフォレスト信頼を構築する設定手順について紹介します。動作は Windows Server 2019 で確認しています。
前提条件として、nekomaru.com と fish.com フォレスト間において、ドメインに必要なポートが解放されており、nekomaru.com では fish.com のドメイン名の名前解決ができること、また、fish.com では nekomaru.com のドメインの名前解決ができるように構成しています。
1) nekomaru.com のドメインの任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。
2) [Windows 管理ツール] より [Active Direcotry ドメインと信頼関係] を開きます。
3) 画面の左ペインにて、[Active Directory ドメインと信頼関係] – [<ドメイン名>] を右クリックして、[プロパティ] をクリックします。
4) [信頼] タブを選択し、[新しい信頼] をクリックします。
5) [新しい信頼ウィザードの開始] にて、[次へ] をクリックします。

6) [信頼の名前] にて、信頼関係先のドメイン名を入力して、[次へ] をクリックします。

7) [信頼の種類] にて、信頼関係の種類を選択して、[次へ] をクリックします。今回は、fish.com とフォレスト信頼を結ぶため、[フォレストの信頼] を選択しています。

8) [信頼の方向] にて、作成する信頼関係の方向を指定して、[次へ] をクリックします。今回は、nekomaru.com と fish.com で双方向の信頼関係を結ぶため、[双方向] を選択しています。

9) [信頼の方向] にて、信頼関係に関する AD データを作成する対象のドメインを指定します。この画面は、信頼の方向として [双方向] を選択した場合に表示されます。今回は、信頼関係先の fish.com ドメインにも信頼関係に関する AD データが作成されるように、[このドメインと指定されたドメインの両方] を選択しています。

10) [ユーザー名とパスワード] にて、対向ドメインにて信頼関係の AD オブジェクトを作成するために必要な資格情報を入力して [次へ] をクリックします。fish.com ドメインのルート ドメインの Domain Admins もしくは Enterprise Admins の権限をもっているユーザーの資格情報を入力します。今回は、fish.com フォレストのルート ドメインの既定アカウント administrator の資格情報を入力しています。

11) [出力方向の信頼認証レベル — ローカル フォレスト] にて、指定したフォレスト(もしくはドメイン)からの認証の範囲を選択して [次へ] をクリックします。今回は、fish.com フォレストの全てのユーザーを認証できるように [フォレスト全体の認証] を選択しています。

12) [出力方向の信頼認証レベル — 指定されたフォレスト] にて、自フォレスト(もしくはドメイン)の認証の範囲を選択して [次へ] をクリックします。今回は、nekomaru.com フォレストの全てのユーザーを認証できるように [フォレスト全体の認証] を選択しています。

13) [信頼の選択の完了] にて、[次へ] をクリックします。

14) [信頼の作成の完了] にて、[次へ] をクリックします。

15) [出力方向の信頼の確認] にて、[確認しない] をクリックします。

16) [入力方向の信頼の確認] にて、[確認しない] をクリックします。

17) [新しい信頼ウィザードの完了] にて、”新しい信頼ウィザードを完了しました。” と表示されていることを確認して [完了] をクリックします。

上記の手順で、双方向のフォレスト信頼関係の作成が完了です。ドメインのプロパティ画面の [信頼] タブにて、入力方向と出力方向の両方の信頼関係ができていることが確認できます。

