LDAP リポジトリー検索で NameNotFoundException が発生する

LDAP リポジトリーでの検索中に javax.naming.NameNotFoundException が発生した場合は、以下のトラブルシューティング手順に従ってください。

問題

Microsoft Active Directory など、ルート・ベース検索がサポートされていない LDAP リポジトリーでルート・ベース検索が実行されたために、javax.naming.NameNotFoundException が発生します。

この問題の原因を検証するには、次の例に示す wimconfig.xml ファイルの基本項目を調べます。

<config:baseEntries name="dc=ibm,dc=com" nameInRepository=""/>

この例のパラメーターは、WebSphere Application Server 管理コンソールの「リポジトリー参照」設定ページに指定されている値にマップされます。

name パラメーターは、このリポジトリーの Virtual member manager 基本項目であり、Virtual member manager レルム内で固有でなければなりません。LDAP リポジトリーのセットアップ時に、name パラメーターが「レノム内でこのエントリー・セットを一意的に識別するベース・エントリーの識別名」フィールドに指定されている値にマップされます。

nameInRepository パラメーターは、リポジトリー内の基本項目の LDAP 識別名です。 これは、LDAP ディレクトリー・サーバー内の検索開始点を示します。nameInRepository パラメーターは、「このリポジトリー内のベース・エントリーの識別名」フィールドに指定されている値にマップされます。

このリポジトリー内の基本項目の識別名 (Distinguished name of a base entry in this repository)」フィールドが空白のままの場合 (つまり nameInRepository="" の場合)、LDAP リポジトリーのセットアップ時に、サブツリーはデフォルトで LDAP リポジトリーのルートになり、これが検索開始点となります。この結果、ルート・ベース検索が行われます。リポジトリーでルート・ベース検索がサポートされていない場合、JNDI 検索を実行すると NameNotFoundException が発生し、さらにこれが原因で Virtual member manager が例外をスローします。

解決方法

Virtual member manager で LDAP リポジトリーを構成するときに、LDAP サーバー検索ルートを設定します。

LDAP リポジトリーでルート・ベース検索がサポートされていない場合は、WebSphere Application Server 管理コンソールの「リポジトリー参照の設定 (Repository reference settings)」ページの「このリポジトリー内の基本項目の識別名 (Distinguished name of a base entry in this repository)」を空白のままにしないでください。

これらの設定へのアクセス方法については、WebSphere Application Server インフォメーション・センターの「リポジトリー参照の設定」を参照してください。

関連するトピック

有効な LDAP リポジトリー・ログイン ID でログインできない



利用条件 | フィードバック