Share via


[ADSI プログラミング] VBScript: ADSI サービスプロバイダの違いって何?

こんにちは、ILM 一家のパパ(お父さん)です。

ILM一家メタボの私と息子(ぴろと)が、スポーツジムデビューしました。

まず、30分程度ランニングして、マシンで上半身と腹筋を使って、最後に乗馬マシンとお風呂で体をほぐす、といったメニューです。独身時にジョギングを週2回程度していましたが、確かにジムは短時間で効率よく運動できて良いですね。

よく、仕事中に ニク~、ニク~と連呼している、ILM一家のお母さん(ういこさん)、私はあなた好みの豊満なウエストを失ってしまうけど、あなたへの愛をなくしたわけでは無いので許してね。

さて、今回は ADSI で提供される、サービスプロバイダについてお話したいと思います。
ADSI サービスプロバイダには、以下のようなものがあります。多くの方は LDAP、WinNT を使われているのかと思います。

LDAP プロバイダ LDAP サーバ へアクセス
WinNT プロバイダ Domain/Local Account DB へアクセス
GC プロバイダ GC(グローバルカタログ) へアクセス
OLE DBプロバイダ Active Directory へのクエリーアクセス
IIS プロバイダ IIS オブジェクト へアクセス
NDS プロバイダ Novell Netware Directory Service へアクセス
NWCOMPAT プロバイダ Novell Netware 3.x へアクセス

 

この中で、Active Directory のアクセスに使用する、LDAP、WinNT、GC、OLE DB プロバイダについてそれぞれ特徴をご紹介します。使いようによっては、トラブルを防げたり、応答速度を上げることが可能かと思います。

<LDAPプロバイダ >

LDAP V2、LDAP V3 ベースの Directory サーバにアクセスします。

Active Directory(AD) や、Active Directory Application Mode(ADAM) のアクセスに用います。

ホスト解決は、DNS、NetBios 名前解決の順で行われ、認証は、ADを対象とした場合はKerberos認証、NTLM認証の順で、ADAM を対象とした場合 LADP基本認証を用い、Directory サーバへアクセスします。

Open LDAP 等の Windows Server 以外の LDAP サービスにも接続が可能です。

  接続文字例(AdsPath)

           LDAP://CN=Jeff Smith,CN=users,DC=fabrikam,DC=com

<WinNT プロバイダ >

Active Dirtectory Doamin(AD)にアクセスします。
また、スタンドアロンサーバ、クライアントPC などの、ローカルアカウント情報へのアクセスも可能です。

Active Directory上の ドメイン ユーザ アカウントだけではなく、ローカルコンピュータ上のローカル ユーザ アカウントの参照も行える特長があります。

Windows ネットワークを前提としているため、ホスト解決は NetBios 名前解決が、認証には NTLM認証が使われた上で、接続操作が行われます。

LDAP プロバイダと同レベルの機能を提供していますが、ホスト名解決、認証動作が異なります。

  接続文字例(AdsPath)

           WinNT://MyServer/JeffSmith,user

<GC プロバイダ >

Active Directory Domain の GG(Global Catalog) サーバから参照動作を行います。

GC はフォレスト内の全ドメイン上の高使用頻度オブジェクトのコピーを保持しています。

参照するオブジェクトが、遠隔地のドメインではなく、よりクライアントに近い GC に保持されている場合、応答速度の高速化、ネットワークトラフィックの低減が期待できます。

  接続文字例(AdsPath)

           GC ://CN=Jeff Smith,CN=users,DC=fabrikam,DC=com

  <OLE DBプロバイダ>

ADsDSOObject(ADO) により LDAP、GC サーバへアクセスします。

他のプロバイダは、指定ディレクトリ階層の対象オブジェクトへの順次アクセスとなるのに比べ、このプロバイダは特定条件のオブジェクトをクエリ検索で抽出することが可能です。

順次アクセス後の条件判断でオブジェクトを特定するのではなく、条件設定によるオブジェクト抽出となるため、オブジェクト検索/抽出のプログラム要件では高速化が期待できます。

 

  接続文字例(AdsPath)

           LDAP GC 接続文字列を用いて接続後、 OLE DBプロバイダを介して操作します。

以上、いかがでしょうか、たとえば、Web アプリケーションで、Windows 統合認証でクライアント認証情報を用いて ADにアクセスするような場合、認証のダブルホップが認めれていないNTLM を用いる WinNT プロバイダの使用は適切ではないため、LDAP プロバイダで Kerberos 認証を用いる必要があるでしょう。

また、遠隔地のドメイン情報を参照する場合など、直近のGC サーバでオブジェクト管理されているものについては、LDAP プロバイダより、GC プロバイダの方が参照効率は高くなると考えられます。

特定条件のオブジェクト抽出については、クエリ条件を設定できるOLE DBプロバイダを使用する事で、コーディング量の削減、抽出速度の向上が期待できるでしょう。

~ お父さんより ~