ActiveDirectory と ADAM ( ActiveDirectory Application Mode ) の違いを調べてみた。
ただし、これらは ADAM 1.0 の情報を基にしている。現在は ADAM R2 になっていて、
バージョンアップに伴い変更された箇所もあるようだ。それらは時間があれば調べる予定。
1. システムサービスかアプリケーションサービスか
ADAM は独立したアプリケーションとして動作するので、Domain Admins であれば自由にサービスの開始・
停止ができる。サービスを制御するためにマシンを再起動する必要はない。
つまり、必要に応じて ADAM を起動し、必要がなくなれば ADAM を終了させることが可能。もちろん
アップデートパッチの適用もサーバマシンを再起動することなく完了する。
一方で ActiveDirectory はシステムサービスとして動作するのでユーザの意思で自由に起動・
停止させるといったことはできないし、アップデートパッチを適用する場合は大抵は再起動が必要になる。
2. 設定の異なる複数のプロセスが存在できるかどうか
ADAM はあくまでも単なるアプリケーション。多くのアプリケーションが複数のプロセスを起動できるように
ADAM もコマンドから複数のインスタンスを起動できる。それぞれのインスタンスに異なるスキーマを
適用することも可能。つまり、ADAM を必要とするサービスごとに異なる設定を適用したインスタンスを
作成することも可能ということ。
一方で、ActiveDirectory はシステムなので複数のインスタンスを作成することは、通常はできない。
また ActiveDirectory は、それを利用するサービスそれぞれに合わせた異なる設定で運用するということもできない。
3. 待ち受けポートを変更できる
ADAM では何番ポートを使用するのかを設定することができる。具体的には SCP ( Service Connect Point )
オブジェクトの serviceBindingInformation 属性に次のように指定される。
serviceBindingInformation: ldap://adam.example.com:1234
SCP オブジェクトにはサーバアドレスとポート番号のほかに keyword 属性にインスタンス情報なども格納される。
一方で ActiveDirectory では待ち受けポートがハードコーディングされているので変更することができない。
レジストリの値は DNS の SRV レコードの設定に使用されるだけで、ActiveDirectory サービスの待ち受けポートには何の変更もない。
4. グローバルカタログの有無
ActiveDirectory にはグローバルカタログというものがあり、フォレストツリー内を効率よく検索できるようになっているが、ADAM にはグローバルカタログが存在しない。しかし、単一の LDAP クエリであっても ADAM インスタンス内の全てのパーティションを検索できるようになっている。
ADAM の欠点は ActiveDirectory Service Interface を利用したスクリプトやアプリケーションからは操作できないこと。LDAP API をベースにした管理アプリケーションを用意する必要がある。
5. トップレベルのオブジェクト
ActiveDirectory では必ず domeinDNS オブジェクトにしなければならない。
一方で ADAM は任意のオブジェクトクラスを指定できる。コンテナであろうが、ユーザであろうがトップレベルオブジェクトとして指定できる。
6. グループとユーザのスコープ
ADAM ではあるグループ、あるユーザはそれ自身が登録されているパーティションのみで有効になる。
たとえばパーティション A に登録したユーザアカウントへ別パーティションのオブジェクトに対する
権限を付与したり、パーティション B に登録したユーザアカウントを別パーティションのグループに
所属させるといったことはできない。
Windows そのものに設定した基本セキュリティや ADAM に設定した基本セキュリティ設定を
複数の ADAM パーティションに適用することは可能。つまり、基本セキュリティ設定 S
を ADAM パーティション A, B, C 全てに存在するグループに適用するといったことは可能。
7. FSMO ( Flexible Single Master Operation )
ActiveDirectory では 5 種類の FSMO 全てが存在する。一方で ADAM ではたった 2 種類しかない。
内訳は以下の通り。
|
ActiveDirectory |
ADAM |
Scheme マスタ |
○ |
○ |
Domain Naming マスタ |
○ |
○ |
PDC マスタ |
○ |
× |
RID マスタ |
○ |
× |
インフラマスタ |
○ |
× |
マルチドメイン環境の ActiveDirectory の場合、Scheme マスタと Domain Naming マスタ以外の
FSMO は複数存在することになる。しかし、ADAM ではパーティションあるいはクローンがいくつ
あっても Scheme マスタと Domain Naming マスタがひとつずつあるだけ。
なお、ADAM には ActiveDirectory のルートドメインに相当するものは存在しない。
8. スキーマ
ActiveDirectory のスキーマはかなり複雑。一方で、デフォルトの ADAM スキーマは簡素。
デフォルトの ADAM スキーマにはクラスが 44 個、属性が 268 個あるだけ。
ただし、拡張することができるので ActiveDirectory と同じスキーマにすることもできる。
9. ユーザプリンシパル名
ユーザプリンシパル名 ( User Principal Name ) というのは、ActiveDirectory / ADAM にログインするときに
ユーザ名として入力するデータのこと。ActiveDirectory では RFC822 に既定されているフォーマットルールに
沿っていなければならない。たとえば、user@example.com という ユーザ名 + @ + ドメイン名という形式にならなければならない。
一方で ADAM にはそのような制限がない。user@example.com という形式でも、user だけでもいい。
ただし、ActiveDirectory では同じユーザプリンシパル名をもつアカウントがあっても許されるのに対し、
ADAM ではユーザプリンシパル名の重複が許されない。