知られざるActive Directory技術の「舞台裏」

第2回 誰も教えてくれないActive DirectoryとLDAPの「本当の関係」[後編]

この記事を読むのに必要な時間:およそ 5 分

LDAPスキーマとは

LDAPでは,属性やオブジェクトの仕様(どのような内容を持つか)について,スキーマにより定義されており,具体的な実装については,RFC4519やRFC4524で勧告されています。

LDAPスキーマでは,属性あるいはオブジェクト(オブジェクトクラスとして定義されます)は一意の名前およびOIDで設定され,属性であればEQUALITY(等価照合規則:照合規則の一種)やSYNTAX(データの構文:データの型)などが,オブジェクトであればSUP(継承されたオブジェクトクラス:属性を引き継ぐオブジェクトクラス)やMUST(必須属性:必須の属性⁠⁠,MAY(オプション属性:任意で設定可能な属性⁠⁠,など必要な仕様が設定されます。

OIDとは,属性やオブジェクトクラスごとに割り当てられた,一意のIDの一種です。OIDは,一意性を保つため,IANA(Internet Assigned Numbers Authority)で管理され,オブジェクトの内容やそれを管理する(登録された)組織に添って,割り振られているのです。

そのため,一般の管理者が勝手にOIDを自組織に割り振ることはできませんが,スキーマを拡張して,新しい属性を定義したいような場合,新規のOIDについてはIANAに申請を行なって自組織に割り当てられたOIDを使うことになります。

なお,Active Directoryでは,マイクロソフトの管理下にあるOIDについて,利用者間で重複しないような生成スクリプトを使ってIANAに申請を行なわなくても,一意のOIDが利用できるようになっています。

また,各スキーマの名前は長い文字列が使われることがあります。これは名前の重複を避けるため,LDAPで行なわれる作法のひとつなのですが,このような場合そのままだと使いづらいので,lDAPDisplayName(LDAP表示名)という別の属性で,LDAPで使う属性の名前が定義されています。

オブジェクトクラスには構造型・抽象型・補助型の3つのタイプがあり,内容によって使い分けられます。一般にオブジェクトと呼ばれるものは構造型クラスにあたります。補助型クラスは構造型クラスに新しい属性を継ぐといった,仲立ちの機能をもっています。抽象型クラスは新しい構造型クラスの定義をプログラミングで行なうような場合に利用されます。

スキーマを拡張したいような場合,構造型オブジェクトを新しく定義することで,希望する属性を備えた任意のオブジェクトクラスを利用できるようになりますが,既存のオブジェクトクラスに新しい属性を加えたい,というような場合,希望する属性を備えた補助型クラスを定義して,既存のオブジェクトクラスをSUP(継承元)とすることで,既存のオブジェクトクラスに新しい属性を設定することが可能です。

Active Directoryではスキーマ情報自体がオブジェクトの集まりとして定義されており,marubatsucorp.localドメインならCN=Schema,
CN=Configuration,DC=marubatsucorp,DC=localというエントリで構成されています。

たとえば,ユーザアカウントのオブジェクトは,LDAPでは
CN=User,CN=Schema,CN=Configuration,DC=marubatsucorp,
DC=local(userクラススキーマ)として,ユーザアカウントで利用するメールアドレス(mail属性)はCN=E-mail-Address,
CN=Schema,CN=Configuration,DC=marubatsucorp,DC=local
(E-mail-Adressアトリビュートスキーマ)として,それぞれ定義されています。

図4 ユーザアカウントのプロパティ

図4 ユーザアカウントのプロパティ

図5 メールのプロパティ

図5 メールのプロパティ

Active Directory固有の実装として,グローバルカタログに自分の属性値をコピーするかどうか,が指定できます。グローバルカタログにより,フォレスト(Active Directoryの最大単位)全体の情報をいちどきに検索することができますが,グローバルカタログに属性の情報がコピーされていることで,すばやく検索させることができます。またANR(Ambiguous Name Resolution)という機能で,あいまいな検索機能を有効にすることもできます。

著者プロフィール

小鮒通成(こぶなみちなり)

Active DirectoryおよびWindows Serverに関するコンサルタント。あわせて各種コミュニティ活動や執筆活動を行っており,Microsoft Most Valuable Professional (Windows Server System - Directory Services) 表彰を5年連続で受けている。現在はNTTデータ先端技術株式会社に勤務。