Mein Bereich ist nur mit authentifizieren uid = Benutzer, dc = ldap, dc = com. Mit dieser Basis ich folgende Fehler LDAPException(resultCode=49 (invalid credentials), errorMessage='invalid credentials
‚)Java-Authentifizierung auf OpenLDAP ohne OU in der Basis gibt ungültige Anmeldeinformationen
I succesfull authentifizieren zu einem OpenLDAP
mit folgenden Basis mit einer Java-Anwendung kann erhalten: uid = Benutzer, ou = Menschen, dc = ldap, dc = com. Also ohne die mehreren Organisationseinheiten zu schreiben, zu denen der Benutzer gehört. Ich konnte auch in einer anderen Umgebung zu ActiveDirectory authentifizieren nur mit uid = Benutzer, dc = com aber nicht auf OpenLDAP
.
- Gibt es eine Einstellung auf
OpenLDAP
, die ich verpasst habe? - Gibt es in
Java
etwas, das ich für die Problemumgehung verwenden kann? Ich würde eine Lösung mitJNDI
bevorzugen.
In Java habe ich JNDI
und auch UnboundID für den Test verwendet. Dies sind die Java-Verbindungseinstellungen:
//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);
Datei ldap.conf:
BASE dc=ldap,dc=com
Datei slapd.conf:
suffix "dc=ldap,dc=com";
rootdn "cn=Manager,dc=ldap,dc=com"
Dank für die schnelle Antwort danken auszuführen. Ist dies nur für OpenLDAP? Warum gibt es einen Unterschied zwischen ActiveDirectory und OpenLDAP? Wenn ich mit dem ActiveDirectory verbunden habe, habe ich den Port 3268 benutzt, der mich direkt mit dem LDAP verbindet. –
Es ist für jede LDAP-konforme Implementierung. AD ist nicht vollständig LDAP-kompatibel. Ich sehe nicht, was die Portnummer damit zu tun hat. – EJP