2017-01-19 9 views
0

私の組織では、LDAPサーバーがあるCORPネットワークがあり、ユーザー名(プリンシパル)&のパスワードを証明することで、このサーバーをJavaプログラム経由で非常に簡単に接続できます。私のJavaコードは、org LDAPサーバーに接続するためのものです。Apache Directory Server LDAP設定

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
env.put(Context.PROVIDER_URL, "ldap://corp.testorg.com:10389");  
env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
env.put(Context.SECURITY_PRINCIPAL, "CORP\\username"); 
env.put(Context.SECURITY_CREDENTIALS, "password"); 
try 
{ 
DirContext ctx = new InitialDirContext(env); 
System.out.println("connected"); 
} 

しかし、私の問題は、私は私のローカルマシン上のApache DSを通じて自分自身のLDAPサーバーを作成し、その後、私は、ユーザー名とベースDNを提供する必要が同じプログラムを通じて、そのローカルのLDAPサーバーに接続しようとしているということです

put(Context.SECURITY_PRINCIPAL, "cn=username,ou=users,o=test") 

私は、ユーザー名とベースDNを提供しなければならない理由を私は理解していないです以下のようにのように。私はLDAPサーバ上でいくつかの設定が欠けていますか教えてください。

答えて

0

サポートされているSECURITY_PRINCIPALの形式は、サービスプロバイダによって大きく異なります。通常、ユーザーの識別名は期待されますが、Active Directory supports a couple of additional formatsです。

+0

大丈夫です。したがって、CORPはサービスプロバイダーによって提供されます。しかし、彼らは私のローカルLDAPサーバーでそれを行うことができるようにそのような設定を行っている&私はSECURITY_PRINCIPALのユーザー名でベースDNを渡す必要はありません –

関連する問題