この記事はWindows Live Spaceで掲載したものです。
前回の投稿で「後方リンク」の用語が出てきたので、関連してみていただけるよう、再掲します。
(一部加筆修正しています)
Active Directoryの属性の中でも、特殊な属性の種類である、前方リンクと後方リンクについて紹介したいと思います。
ユーザー等Active Directoryオブジェクトのプロパティなどを開くと、名前、ログオン名、住所、電話番号、事業所、部署、、など様々な情報が格納できることがわかります。
これらのひとつひとつの情報を「属性」と呼び、そこに格納される値を「属性値」と呼んでいますね。
通常、属性値は独立した情報として、データベースの中に格納されますが、例外的に他の属性との関連をもった属性もあります。例えば、グループの「メンバー」とユーザーの「所属するグループ」などがあります。グループの「メンバー」とユーザーの「所属するグループ」は、ひとつの事柄について、どちらのサイドから見ているかを表しているだけなので、バラバラに管理するのは望ましくありません。
そのため、Active Directoryでは、グループのメンバー属性(Member属性)とユーザーの所属するグループ属性(MemberOf属性)は一元的な管理をしています。
具体的な動きについて紹介しましょう。
例えば、SalesグループにKuniiユーザーを追加するとします。
この操作は言い方を変えると、SalesグループのMember属性にKuniiユーザーを追加するという操作になりますね。このとき、Active Directoryでは同時にKuniiユーザーのMemberOf属性にSalesグループを追加するという操作を自動的に行います。このように、片方の属性に属性値が書き込まれると、もう片方の属性にも属性値が自動的に書き込まれることによって、両者の関係が維持されるようになります。
2つの属性のうち、最初に書き込まれる属性を前方リンク、前方リンクの情報に基づいて自動的に書き込まれる、もう片方の属性を後方リンクと呼びます。
Member属性とMemberOf属性の関係では、Member属性が前方リンク、MemberOf属性が後方リンクとなります。
つまり、グループのメンバーを追加するときには、
・グループのMember属性にユーザーを追加する方法
・ユーザーのMemberOf属性にグループを追加する方法
の2つがありますが、どちらの操作を行っても、Member属性に値が書き込まれ、
その後、MemberOf属性が書き込まれるようになっています。
下の図は、Kuniiユーザーのプロパティを開いて、Salesグループを所属するグループとして追加した様子をADInsightというツールで追跡した様子です。(ADInsightとはActive Directory(ADSI)内部の処理をリアルタイム表示するSysinternalsのツールです)
ID8番の処理を見ると、Modifyとなっていて、その詳細(画面の下段)を見ると、Salesグループ(画面のdn部分)のMember属性(画面のmod_type部分)に、kuniiユーザー(画面のval部分)が追加されていることがわかります。
このように、
グループのMember属性にユーザーを追加しても、
ユーザーのMemberOf属性にグループを追加しても、
前方リンクであるMember属性にユーザーが追加されます。
後方リンクは、ドメインコントローラーのローカルで処理される属性なので、ドメインコントローラー間のレプリケーションでは、Member属性だけがレプリケートされ、レプリケートされたMember属性の情報に基づいて、MemberOf属性が構成されることになります。