IBM Tivoli Directory Server 5.2 (LDAP) との対話

LDAP ディレクトリーは、オブジェクトに関する情報を特定の順序でリストして、各オブジェクトの詳細が示されるようにしたものです。 LDAP は、汎用のリレーショナル・データベースとは異なる特性を備えた、特殊なデータベースです。ディレクトリーの特徴の 1 つとして、更新 (書き込み) される頻度よりアクセス (読み取りまたは検索) される頻度のほうがはるかに高いことが挙げられます。個人の電話番号は、大勢の人によって検索される可能性がありますが、変更されることはあまりありません。

IBM Telephone Directory V5.2 は、既存のディレクトリー内のエントリーを検索、表示、および管理するために使用されることも、新規ディレクトリーをセットアップするために使用されることもあります。このアプリケーションは、LDAP ディレクトリー・サーバーを使用してデータの保管と検索を行います。デフォルトでは、ご使用のネットワーク内に別の LDAP サーバーが存在していないかぎり、 LDAP サーバーがサーバー上に自動的に構成されるようになっています。 LDAP サーバーは、アプリケーション・サーバーと同じサーバーに存在する必要はありません。また、IBM Telephone Directory とともに Domino LDAP サーバーを使用することもできます。詳しくは、 Redpaper「WebSphere Application Server Express」を参照してください。Information Center 外へのリンク

LDAP サーバーには、TCP/IP を介してアクセスすることができます。

LDAP エントリー

ユーザーによる匿名でのディレクトリー検索は、 IBM Telephone Directory V5.2 のインストールのデフォルト設定でのみ許可されます。

IBM Telephone Directory V5.2 アプリケーションを使用してディレクトリーにエントリーを追加すると、エントリーは、ユーザーの親 DN 内に作成され、ユーザー ID 値を使用します。例えば、John Jones を cn=users,dc=myhost,dc=mycompany,dc=com という親 DN に登録すると、 John Jones の LDAP エントリーは cn=John Jones,cn=users,dc=myhost,dc=mycompany,dc=com になります。親 DN の更新は、ユーザーおよび IBM Telephone Directory V5.2 管理者には隠されます。ディレクトリー内のオブジェクトは、識別名 (DN) 属性で参照されます。 John は認証時にユーザー ID の入力を求められます。 John は、登録時に指定されたユーザー ID を入力する必要があります。この例ではユーザー名は John Jones です。

既存のディレクトリー・エントリーが標準の inetOrgPerson オブジェクト・クラスに基づいて作成されている場合、それらのエントリーを検索、表示、および管理することができます。このオブジェクト・クラスは、個人に関する情報 (名前、姓、電話番号、およびE メール・アドレスなど) の表示および保管に広く使用されている、業界標準クラスです。ディレクトリーには、他のオブジェクト・クラス (例えば、アプリケーションがディレクトリーの検索に使用するオブジェクト・クラスなど) に関するエントリーも含めることができますが、デフォルトのオブジェクト・クラスは inetOrgPerson です。

アプリケーションによって変更されたディレクトリー・エントリーには、 ibm-itdPerson という補助オブジェクト・クラスが追加されます。 ibm-itdPerson オブジェクト・クラスを使用することにより、 IBM Telephone Directory V5.2 アプリケーションは、標準オブジェクト・クラスでは使用できない追加属性を使用できるようになります。追加属性には、代替電話番号、代替住所、アシスタントおよび代行者用の DN 値、さらに、職責、販売区域、取引エリアなどの勤務地域情報が含まれます。補助 ibm-itdPerson オブジェクト・クラス内の属性は、すべてオプションです。このクラスを追加すると、inetOrgPerson オブジェクト・クラスに含まれていない補足的な個人の情報を保管できます。

アプリケーションは、要求を受け取ったときには、それを処理するために LDAP サーバーに接続する必要があります。要求は、指定されているユーザーの権限に基づいて実行されます。 LDAP サーバーへの接続にクリデンシャルが必要な場合、アプリケーションは、HTTP 要求と一緒に渡されたクリデンシャルを使用して LDAP サーバーに接続します。アプリケーションは、一部の要求 (例えば、ディレクトリー・エントリーの作成、更新、または削除を行う要求) についてはクリデンシャルを必要とします。新規エントリーを追加するために必要なクリデンシャルは、オープン登録が使用可能になっている場合には、管理者によって提供されます。

検索要求のためにクリデンシャルが必要とされない場合、アプリケーションは匿名バインドを使用して LDAP サーバーに接続し、ディレクトリーを検索します。匿名検索アクセスを行う場合には、「ディレクトリー・アクセス」構成プロパティーを「匿名 (ログインなし)」に設定しておく必要があります。検索要求にクリデンシャルが必要な場合、アプリケーションは、HTTP 要求で渡されたユーザーのクリデンシャルを使用して LDAP サーバーに接続します。クリデンシャルが提供されない場合、要求は失敗します。認証検索アクセスを行う場合には、「ディレクトリー・アクセス」構成プロパティーを「ログインが必要」に設定しておく必要があります。詳しくは『ディレクトリー・アクセスの変更』を参照してください。

LDAP サーバーは、ユーザーが許可を受ける必要がある操作と、ユーザーの要求が成功するかどうかを制御しています。これには、匿名ユーザーの要求も含まれます。ディレクトリーに関するすべての権限の設定は、 LDAP サーバーによって指定され、制御されます。アプリケーションが、HTTP 要求を LDAP 要求に変換し、クリデンシャルがセキュアに処理されて LDAP サーバーに渡されたかを確認し、LDAP の結果 (成功か失敗か) を、簡単な住所録のような HTML ページにフォーマットします。

ユーザーは、アプリケーションが LDAP サーバーに接続するために使用するクリデンシャルを提供します。オープン登録が指定されている場合には、ユーザー・クリデンシャルが LDAP サーバーへの接続に使用されることはありません。オープン登録の場合には、クリデンシャルはアプリケーションの構成ファイルから読み取られます。 HTTP サーバーは、必要に応じてユーザーを認証する必要があります。アプリケーションは、(クリデンシャルが必要な場合には) それぞれの要求で提供されたクリデンシャルを使用して、LDAP サーバーに接続します。 アプリケーションは、複数の HTTP 要求を処理する場合、クリデンシャルをキャッシュに入れたり、 LDAP 接続を再利用したりしません。 LDAP 接続は各要求ごとに切断されます。このため、アプリケーションが、あるユーザーの要求を処理するために別のユーザーのクリデンシャルを使用して接続することはありません。HTTP サーバーが、LDAP サーバーへの接続に必要なクリデンシャルを提供しない場合、アプリケーションは失敗します。