ここまで、ドメインコントローラの構成に関連する話題を中心に取り扱ってきたが、今回からしばらく、Active Directoryで取り扱うユーザーアカウントなどのオブジェクトについて取り上げていくことにしよう。

Active Directoryのコマンド操作に欠かせないLDAP識別名

Windows Server 2003/2008では、「ds*」という名前を持つ一群のコマンドを使うと、ユーザーアカウントをはじめとする各種オブジェクトの作成、検索、設定変更、削除といった操作を行える。

そして、操作の対象となるオブジェクトを指定する際に使用するのが、LDAP(Lightweight Directory Access Protocol)が使用する記述方法、つまりLDAP識別名だ。LDAPとは、Active Directoryのようなディレクトリサービスにアクセスするためのプロトコルで、その際に対象を指定する手段としてLDAP識別名を用いる。

LDAP識別名の具体例

まず、実際に記述したLDAP識別名の例を示そう。

・ドメイン「ad.company.local」のコンテナ「Users」に配置したユーザー「kojii」 :
cn=kojii,cn=Users,dc=ad,dc=company,dc=local

一見したところでは何のことだかよく分からないかも知れないが、カンマで区切った個々のパーツをバラバラに見ていくと、意味が分かってくる。

まずドメイン名だが、必ずドメインDNS名を使用する。そして、ピリオドで区切られた個々の階層ごとに、「dc=<名前>」という形で記述する。階層構造については、これを右から左に向かってカンマで区切って列挙して表現する。

したがって、「ad.company.local」は「dc=ad,dc=company,dc=local」、「ad.olympus.kojii.net」は「dc=ad,dc=olympus,dc=kojii,dc=net」となる。

ドメイン内に置かれるオブジェクトの識別名は、「cn=<名前>」という形で記述する。ただしOU(Organizational Unit : 組織単位)については「ou=<名前>」という形で記述する。いずれも、階層が深くなるほど、カンマで区切って左に列挙する数が増える原則に変わりはない。複数のOUを階層化した場合、下位の階層から順に「ou=<名前>,ou=<名前>,...」と記述する。

なお、識別名に使用するオブジェクトの名前がスペースを含む場合には、「cn="Koji Inoue"」というように引用符(" ")で囲む必要がある。

LDAP識別名の記述例

これらのルールに基づいてLDAP識別名を記述した例を、以下に示す。

・ドメイン「ad.company.local」のコンテナ「Computers」に配置したコンピュータ「hestia」 :
cn=hestia,cn=Computers,dc=ad,dc=company,dc=local

・ドメイン「ad.company.local」のOU「Sales」に配置したユーザー「Koji Inoue」 :
cn="Koji Inoue",ou=Sales,dc=ad,dc=company,dc=local

・ドメイン「ad.company.local」のOU「Sales」に配置したユーザー「yukikoh」 :
cn=yukikoh,ou=Sales,dc=ad,dc=company,dc=local

・ドメイン「ad.company.local」のOU「Sales」以下のOU「Tokyo」に配置したユーザー「keikoo」 :
cn=keikoo,ou=Tokyo,ou=Sales,dc=ad,dc=company,dc=local

つまり、「階層の下から上に向かって、左から順に記述する」という基本原則と、「cn=」「ou=」「dc=」の使い分けさえ正しく把握しておけば、LDAP識別名はそれほど難しくない。

なお、オブジェクトの種類によってLDAP識別名の書き方が変わるわけではないので、ユーザーアカウント、コンピュータアカウント、グループといった各種オブジェクトの間では、識別名の重複はできない道理だ。