我的范围是仅通过身份验证
的 UID =用户,DC = LDAP,DC = COM 即可。
有了这个基础,我得到以下错误
LDAPException(resultCode=49 (invalid credentials), errorMessage='invalid credentials
&#39)
我可以成功使用Java应用程序对OpenLDAP
进行身份验证,其基数为:{strong> uid = User,ou = People,dc = ldap,dc = com 。因此,无需编写用户所属的多个组织单位。
我还能够使用 uid = User,dc = com 在不同的环境中对ActiveDirectory进行身份验证,但不能在OpenLDAP
上进行身份验证。
OpenLDAP
的设置吗?Java
中是否有可用于解决方法的内容?
我更喜欢JNDI
的解决方案。在java中,我使用JNDI
和UnboundID进行测试。这些是java连接设置:
//JNDI Connection
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, url);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "uid=User,dc=com");
env.put(Context.SECURITY_CREDENTIALS, password);
//UnboundID connection
LDAPConnection ldapConnection = new LDAPConnection(ip, 389, "dc=ldap,dc=com", pswrd);
文件 ldap.conf :
BASE dc=ldap,dc=com
文件 slapd.conf :
suffix "dc=ldap,dc=com";
rootdn "cn=Manager,dc=ldap,dc=com"
答案 0 :(得分:1)
我错过了OpenLDAP的设置吗?
没有
Java中是否有可用于解决方法的内容?
没有。您必须提供完整的DN。
答案 1 :(得分:1)