2016-03-23 12 views
0

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 mit JNDI 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" 

Antwort

1

Gibt es eine Einstellung auf OpenLDAP das habe ich vermisst?

Nr

Gibt es etwas in Java, die ich für Abhilfe verwenden können?

Nein. Sie müssen die vollständige DN angeben.

+0

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. –

+1

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