- - PR -
ActiveDirectry上に対し、ユーザ検索を行っても属性が取得できない
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-10-25 17:02
チャブーンです。
#う〜ん。 まず私は JAVA プログラマではありません。ですから いちごさん のコードのデバッグはできません。 そうはいっても仕方がないので、いちごさんのやりたいプログラムのサンプルを探したところ、したのページにそっくりのものがありますよ。 http://emxas.jp/ITL/sample_code/ldap.html 見てもらえればわかりますが、LDAP シンプル認証でバインド (Users コンテナの中にある 34044 ユーザの場合) するためには、このようにコーディングしないとダメだと思います。 env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, "CN=34044,CN=Users,DC=AAA,DC=BBB"); env.put(Context.SECURITY_CREDENTIALS, "H0YYRT"); あと、BeseDN をどこに決めるか、ユーザオブジェクトをどの OU に配置するか、ということは最終的には LDAP の設計次第ですので、一般論といったものはないでしょう。Active Directory ドメインのすべてのオブジェクトは DC=AAA,DC=BBB (ドメイン DN) 配下にあるということ、デフォルトのユーザオブジェクトは CN=Users に格納されるということを認識して、ご自分で決めてください。 最後に私が「注意」といったことですが、これは単に DN 属性名 (OU とか CN とか) を間違えないように!ということで他の意味はありません。 [ メッセージ編集済み 編集者: チャブーン 編集日時 2007-10-25 17:23 ] |
|
投稿日時: 2007-10-25 17:49
いちごです。
チャブーンさん。ホントに有難うございます。 今までは、以下のようにしていました。 SECURITY_PRINCIPALの引数がまずかったということでしょか。。 一度、チャブーンさんのご助言をご参考にトライしてみたいと思います。 env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, "34044@AAA.BBB"); env.put(Context.SECURITY_CREDENTIALS, "H0YYRT"); あと、ADの構造についてもご助言有難うございます。 =Users に格納されるということを注意したいと思います。 来週辺りに、また客先にいってトライしてまいりますので、結果はまたご報告させて 頂きます。 いろいろとご助言を賜り有難うございました。 |
|
投稿日時: 2007-11-02 16:19
本件のテスト結果をご報告致します。
以下の接続文字列でユーザの属性を取得することが出来ました。 ・接続URL :HTTP://ADサーバのIPアドレス:389 ・ドメイン :AAA.BBB ・BaseDN :CN=USERS,DC=AAA,DC=BBB ・フィルタ :CN=34044 ・UserPrincipal:34044@AAA.BBB 今回、以下のことが勉強になりました。 ・ActiveDirectryでは、デフォルトコンテナである「USERS」の下に、OU等を 作成している場合、BaseDNは、先頭に”CN=USERS,”が必要である ・UserPrincipalについては、OpenLDAPと違って、ActiveDirectryの場合、 ”ユーザ情報@ドメイン”になる。 チャブーンさん、柴田たけおさん、いろいろとご助言賜り誠に有難うございました。 |