web-dev-qa-db-ja.com

Active Directoryに接続するためのLDAPユーザー名を指定する方法

プログラムをLDAPと統合しようとしています。ここにActive Directoryサーバーがあります。これは明らかにLDAPを話します。自分のコードをデバッグしようとする前に、サーバーの内容を確認したいと思います。 LDAPサーバーと通信できると主張する jxplorer というプログラムを見つけました。

しかし、私はそれを機能させることができないようです。私は設定を使用しています:

  • ホスト:(私のADサーバーのIPアドレス)
  • ポート:389
  • プロトコル:LDAPv3
  • ベースDN:OU = MyCompany、DC = domaincontroller、DC = local(以前にここでLDAPコードを書いた私の会社の他の誰かから入手した文字列)
  • レベル:ユーザー+パスワード
  • ユーザーDN、パスワード:(このExchangeサーバーのユーザー名とパスワード)

私が得ているエラーは:

javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID=0C090334, comment: AcceptSecurityContext error, data 525, vece ]

ここにある他のLDAPの人物は、525は「ユーザーが見つかりません」と言っており、おそらくユーザー名を「LDAP命名法」で指定する必要があると仮定しています。

JxplorerでADに接続する方法を知っている人はいますか?

7
Ken

方法を見つけました:ユーザーのログインではありません。次のようなLDAP DNです。

CN=My Name,OU=My Company,DC=server,DC=local
7
Ken

LDAPユーザーIDとパスワードを直接ハードコーディングして渡します。

例:

     Hashtable env = new Hashtable();         
     env.put(Context.INITIAL_CONTEXT_FACTORY,"com.Sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.REFERRAL, "follow");
env.put(Context.SECURITY_PRINCIPAL,"adminuserid");
env.put(Context.SECURITY_CREDENTIALS,"adminPassword");
env.put(Context.PROVIDER_URL,"ldapUrllink");
DirContext ctx = new InitialDirContext(env);

これはうまくいくはずです。

ありがとうサジット

1
Sajith P