1

LDAP LoginModule をセットアップしようとしています ( BrowserLdapLoginModuleを使用)。ユーザー/パスワードは正しいです。ユーザーからロールを取得しますが、CN 値を抽出しようとすると、値が見つかりません。

私はプロセスに従いましたが、最終的に失敗したのは、次の行で javax.naming.NameNotFoundException を取得したことです

NamingEnumeration roleAnswer = ctx.search(searchBaseDN, roleFilter, roleconstraints);

次の値を使用します (二重引用符は含まれません)。

  • searchBaseDN(String) = "OU=役割,DC=siafake,DC=aplssib"
  • roleFilter(String) = "(distinguishedName=CN=Urgencias,OU=役割,DC=siafake,DC=aplssib)"
  • derefRoleAttribute(String[] = { "cn" };

そのデータを使用して、検索で me が返されることを期待していますUrgenciasが、例外が発生するだけです。同じユーザー/パスワードで問題なく LDAP ツリーを参照できるため、これは権限の問題ではありません。

アイデア/提案はありますか?前もって感謝します。

LDAP キャプチャ

4

1 に答える 1

1

わかりました、これが私が見つけた答えです(また、テリー・ガードナーのコメントからのコメントに対するいくつかの説明)

私のシステム管理者は、ユーザー A (LDAP に接続して参照できる「システム」ユーザー) をくれました。私のアプリケーションに接続するユーザーは、ユーザー F (最終ユーザー) になります。私の jboss を構成するためのサンプルについて尋ねられたとき、彼らは私を BrowserLdapModuleLogin (BLML) にリダイレクトしました。

BLML は、ユーザー F のデータ (完全な LDAP "名前") を取得するために、ユーザー A との初期接続を行うことで機能します。

その後、ユーザー F 接続データを使用して新しい接続がセットアップされ、ユーザー/パスワードが検証され、memberOfそれが属するグループ (属性) が取得されます。この時点まで、すべてが正常に機能します (少なくともセットアップでは)。

(の代わりに)「CN」値を取得するオプションを設定したときに問題が発生しましたCN=value,OU=organization....。このオプションを設定すると、モジュールはユーザー F として再度ロール ツリーにログインし、属性を取得しようとします。しかし、たまたま F にはそうする権限がありません。

モジュールは IT 担当者から提供されたもので、LDAP は初めてなので、何か間違った設定をしているだけだと思い、コードを変更したくありませんでした。最終的に、それを使用するシステムでは、このモジュールは認証のみに使用されました。ロールは別の DB から抽出されたため、この問題を回避するためのコーディングを余儀なくされました。

ご迷惑をおかけして申し訳ありません...

于 2012-05-18T17:08:27.657 に答える