- PR -

JNDIを利用してアクティブディレクトリにアクセスするには

1
投稿者投稿内容
ほる
会議室デビュー日: 2004/01/11
投稿数: 4
投稿日時: 2004-01-13 19:40
はじめまして

いきなり質問なのですが

LDAPサーバとしてアクティブディレクトリを使用します。
JNDIを利用しこのサーバにアクセスする際、
何か特殊な処理が必要になるのでしょうか?

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,"ldap://ウィンドウズ2KS:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put("java.naming.referral","follow");

DirContext ctx = new InitialDirContext(env);
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);

NamingEnumeration results = ctx.search("dc=xxx,dc=com", "cn=*", constraints);

のようにソ−スは書いてあります。
アクティブディレクトリのusers以下のユーザを取得するには
何か別の処理を行わなければならないでしょうか?
識者の方ご教授お願いいたします。

乱文失礼いたしました。
ぽん
大ベテラン
会議室デビュー日: 2003/05/13
投稿数: 157
投稿日時: 2004-01-13 20:29
「こうしたいけど、こうなってしまう」と書いて頂かないと、コメントのしようがありません

SECURITY_PRINCIPALとSECURITY_CREDENTIALSを指定してログインするとお望みの結果は得られますか?
ほる
会議室デビュー日: 2004/01/11
投稿数: 4
投稿日時: 2004-01-13 20:56
レスありがとうございます。

状態は
ベース以下を取得できない状態です。
また、SECURITY_PRINCIPAL、SECURITY_CREDENTIALSを指定しても取得することができませんでした。
といいますか、そちらを指定するとルートすら取得できない状態でした。
(アクセスが拒否されました)

また LDAPBrowserを利用してアクセスした場合でも
同じ状態になりました。
ぽん
大ベテラン
会議室デビュー日: 2003/05/13
投稿数: 157
投稿日時: 2004-01-13 21:44
ログインユーザに権限が無いのではないでしょうか?

権限の付け方等はこちらで検索&質問されるのが良いと思います。
ほる
会議室デビュー日: 2004/01/11
投稿数: 4
投稿日時: 2004-01-14 00:59
早いレスありがとうございます

アクティブディレクトリを見直して
もう一度報告をいたします。

ほる
会議室デビュー日: 2004/01/11
投稿数: 4
投稿日時: 2004-01-14 14:02
解決いたしました。

アクティブディレクトリの権限のあるユーザにて
env.put(Context.SECURITY_PRINCIPAL, "権限ユーザ@ウィンドウズ2KS");
env.put(Context.SECURITY_CREDENTIALS, "admin");
env.put(Context.SECURITY_AUTHENTICATION, "simple");

を試したところ取得することができました。
Context.SECURITY_PRINCIPAL, "cn=権限ユーザ@ウィンドウズ2KS"
とやっていたため認証することができなかったようです。

レスをいただいたぽんさんありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)