やさしく解説するマイクロソフトの最新技術(第1回)

マイクロソフト株式会社 ソリューションデベロッパー事業部 デベロッパー製品部
テクニカル・エバンジェリスト 熊谷 恒治 kojik@microsoft.com





 Windowsコンソシアムの皆様はじめまして。マイクロソフトでテクニカルエバンジェリストとして活動しています熊谷と申します。今回から何回かにわたってマイクロソフトの最新技術を皆様にご紹介していきたいと思います。
 さて、今回のテーマですが、最初にぜひ紹介したいテーマとしてマイクロソフトのディレクトリテクノロジーであるActive Directoryをあげさせていただきます。Active Directory(ADS)は「ネットワーク上に分散しているリソースを管理するためのプラットフォーム」及び「アプリケーションプラットフォーム」としての二つの面があります。

○ ネットワークリソース管理プラットフォーム

 最初にネットワークリソース管理プラットフォームから説明しましょう。
 現在企業内のシステムではオペレーティングシステム、アプリケーションで使用するユーザーアカウントをはじめサーバー、クライアントマシン、プリンタ、ネットワーク機器、ひいてはシステムで利用する各アプリケーション、コンポーネントと管理すべき対象は多岐に渡ります。今までこれらのリソースはすべて個々に管理されていました。例えばユーザー情報の管理では、オペレーティングシステムで使用するアカウント情報、メールソフト等で使うメールアドレス等のユーザー情報、さらにネットワーク機器でのセキュリティー設定用ユーザー情報等などまったく別々に管理されていました。当然管理は煩雑になりシステムの規模が大きくなればなるほど管理コストがかさむ事になります。ADSではこういったオペレーティングシステム及びアプリケーションが使うリソースの情報を一元化し管理コストを低減します。さらにこのリソース情報を組織の構成に合わせた階層構造でり管理することができるため非常に多くのリソース情報を簡単に管理することができます。図1に例をあげましょう。

図1 Active Directoryのディレクトリ構成

 今までのNTではアカウント情報をフラットに管理してきました。この場合管理対象ユーザーが1000、2000と増えてくるとそれらのユーザーを識別するだけでも大変です。ADSではこれらを営業部、企画部等の組織にあった階層を作りそのしたで各々のユーザを管理します。これによりユーザー及びそれ以外のリソースも体系的に管理することができるのです。現在βレベルでADS管理できる情報はOSで使うリソース(ユーザー、グループ、サーバー、プリンタ、共有フォルダ等)情報とコンポーネント情報が主ですが最終的にはネットワーク機器情報及び後に説明する拡張機能によりサードベンダーアプリケーションの情報もディレクトリで管理できるようになります。

・ディレクトリ管理体系
 ADSはドメインと言う単位で管理され、その中で組織構造に合わせた形で階層します。このドメインはDNSの各サブドメイン(ゾーン)に対応しています。さらに各ドメインを階層化した一つのグループとしてツリーと言う単位で管理します。これはDNSのドメインにあたります。

図2 ディレクトリの構成

 この事からもおわかりのようにADSはDNSと密接に結びついており、ドメインとツリーによりディレクトリデータの分散配置ができます。さらに企業間でのグローバルディレクトリを構築するため各ツリーを結び付けたグループであるフォレストと言う概念があります。これはとても重要でInternetをバックボーンにした企業間相互接続において統合されたディレクトリが実現されます。ディレクトリが統合された企業は各組織の運用ポリシーにのっとりリソースの情報を相互に利用しあうことが可能になります。これはグローバルディレクトリを構築する基盤となります。
 ドメインの説明に戻りましょう。先に述べたとおり各リソースはドメインの中で階層化されて管理されます。ADSでは階層化のためにコンテナオブジェクトと言うものが存在します。これはファイルシステムのサブディレクトリの様な働きをし、リソースの論理グループを構築します。各リソースはコンテナの配下で様々なオブジェクトとして存在します。(例えば熊谷というユーザーをあらわすkumagai ユーザーオブジェクトであるとかプレゼンテーション資料の共有フォルダをあらわすPresenDocsシェアオブジェクトといったものです)各オブジェクトはそれぞれ情報を持っておりユーザーオブジェクトであれば電話番号、メールアドレス、住所等の情報を保持しています。こういった形で実態(オブジェクトが持っている情報)を名前で抽象化しているわけです。これはとても重要なことで各リソースの物理的なロケーションを隠蔽する事によりユーザーは論理的な名前経由のアクセスだけで必要な情報を得ることができます。図3に例をあげましょう。

図3

 ここにサーバーA,Bがあり各々、Aは共有フォルダSh1を持っています。Sh1には共有文書が入っていることにしましょう。A,Bが管理されているドメインでは図の様に階層化されておりシェアオブジェクトであるSh-Docが登録されておりSh1へのパスを情報として持っています。ユーザーはサーバーAのSh1を参照するのではなくSh-Docオブジェクトから実態にアクセスしています。もし何らかの理由でSh1をBに移動した場合、管理者はSh-Docの設定をそれに対応されるだけです。ユーザーからみれば依然としてSh-Docに対してのアクセスですのでオブジェクトの実態が変わったとしてもユーザーのアクセスポイントは変りません。実態と論理的な構造を切り離しているのがディレクトリサービスの重要なところです。これにより様々なリソースを名前だけで利用できる事になります。

・ADSのアクセスプロトコル
 つぎにこのディレクトリへのアクセス方法ですがADSではプロトコルとしてDNSとLDAPを使います。クライアントは最初にDNSを使ってADSドメインのドメインサーバーのロケーションを取得します。次にそのドメインサーバー上に存在する各オブジェクトの操作をLDAPで行うわけです。この対応によりInternetをバックボーンとした複数ツリーのADSドメインに対してもクライアントはあらかじめドメインサーバーのロケーションを知ることなくアクセスができます。

○ アプリケーションプラットフォーム

 先にのべたようにADSはアプリケーションプラットフォ―ムでもあります。これはADSIと言うAPIとClass Storeという技術により実現されます。
 まずADSIですが,これはアプリケーションからディレクトリにアクセスするためのインターフェイスです。アプリケーションはADSIを通してオブジェクトの検索、オブジェクトが持っている情報の取得、更新、オブジェクトの作成、削除等あらゆる操作が可能です。
 そしてさらに重要なことはADSIを経由してスキーマーの拡張ができる事です。ADSで最初に提供されるスキーマーで要求を満たせない場合(ADSI経由でスキーマーの拡張ができます。新しい種類のオブジェクト、既存オブジェクトへのアトリビュート追加)この機能により様々なアプリケーションで利用するリソースをADSで一元管理できるわけです。スキーマー拡張ができない場合利用したいオブジェクトクラスがないと開発者はディレクトリへの対応をあきらめるしかありません。
 次にClass Storeですが、これはコンポーネントの情報をオブジェクトで管理するものです。ユーザーが使用する各コンポーネントの情報をClass Storeオブジェクトとしてディレクトリ上で管理し、ユーザーがそのコンポーネントを必要とするときにClass Storeオブジェクトにアクセス、そしてコンポーネントのロケーション情報(どこの補完されているか)及びその他の情報を取得し、インストールを行うものです。この機能によりネットワーク上に分散配置されたコンポーネントをどこからでも利用できることになります。Windows NT 5.0ではこのClass Storeとディレクトリによるユーザープロファイルの管理によりZAWの機能がより強化されました。ユーザーはネットワーク上のどのクライアントマシンからアクセスしてもディレクトリより取得した情報で同じデスクトップ環境を構築し、インストールされていないアプリケーションはClass Storeを使って自動的にインストールされどこからでも自分のデスクトップ環境が再現されます。

 このようにADSはネットワークリソースの管理、特にユーザーデスクトップ管理のベーステクノロジーとして重要な位置をしめる事になります。今後BackOfficeによるADS対応からはじまり様々なベンダーの方がこのADSへ対応することにシステム管理者はADSによるネットワークリソースの一元管理手に入れることでしょう。


Contents         Windows Consortium ホームページ