wake-up-neo.com

Ldap-Fehlercode 32

Ich versuche, OpenLDAP und Active Directory miteinander zu synchronisieren. Dazu verwende ich ein Programm namens LSC-Project, das für diese Art von Aufgaben spezifiziert ist. 

Ich habe das Programm so konfiguriert, dass ich es am besten kann, aber ich kann keinen Weg finden, den folgenden Fehler abzuschütteln:

javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-
031001CD,
problem 2001 (NO_OBJECT), data 0, best match of:
'DC=domname,DC=com'
]; remaining name 
'uid=user1,ou=Users'

May 09 15:19:25 - ERROR - Error while synchronizing ID uid=user1,ou=Users:
Java.lang.Exception:
Technical problem while applying modifications to directory
dn: uid=user1,ou=Users,dc=domname,dc=com
changetype: add
userPassword: 3+kU2th/WMo/v553A24a3SBw2kU=
objectClass: uid

Dies ist die Konfigurationsdatei, unter der das Programm ausgeführt wird:

############################### 
Destination LDAP directory #
##############################

dst.Java.naming.provider.url = ldap://192.168.1.3:389/dc=Windows,dc=com  
dst.Java.naming.security.authentication = simple
dst.Java.naming.security.principal = cn=Administrator,cn=Users,dc=Windows,dc=com
dst.Java.naming.security.credentials = 11111
dst.Java.naming.referral = ignore
dst.Java.naming.ldap.derefAliases = never
dst.Java.naming.factory.initial = com.Sun.jndi.ldap.LdapCtxFactory
dst.Java.naming.ldap.version = 3
dst.Java.naming.ldap.pageSize = 1000

#########################
Source LDAP directory 
#########################

src.Java.naming.provider.url = ldap://192.168.1.2:389/dc=Linux,dc=com
src.Java.naming.security.authentication = simple
src.Java.naming.security.principal = uid=root,ou=users,dc=Linux,dc=com
src.Java.naming.security.credentials = 11111
src.Java.naming.referral = ignore
src.Java.naming.ldap.derefAliases = never
src.Java.naming.factory.initial = com.Sun.jndi.ldap.LdapCtxFactory
src.Java.naming.ldap.version = 3

#######################
Tasks configuration 
#######################

lsc.tasks = Administrator
lsc.tasks.Administrator.srcService = org.lsc.jndi.SimpleJndiSrcService
lsc.tasks.Administrator.srcService.baseDn = ou=users
lsc.tasks.Administrator.srcService.filterAll = (&(objectClass=person))
lsc.tasks.Administrator.srcService.pivotAttrs = uid 
lsc.tasks.Administrator.srcService.filterId = (&(objectClass=person)(uid={uid}))
lsc.tasks.Administrator.srcService.attrs = description uid userPassword

lsc.tasks.Administrator.dstService = org.lsc.jndi.SimpleJndiDstService
lsc.tasks.Administrator.dstService.baseDn = cn=Users
lsc.tasks.Administrator.dstService.filterAll = (&(cn=*)(objectClass=organizationalPerson))
lsc.tasks.Administrator.dstService.pivotAttrs = cn, top, person, user, organizationalPerson
lsc.tasks.Administrator.dstService.filterId = (&(objectClass=user) (sAMAccountName={cn}))
lsc.tasks.Administrator.dstService.attrs = description cn userPassword objectClass

lsc.tasks.Administrator.bean = org.lsc.beans.SimpleBean
lsc.tasks.Administrator.dn = "uid=" + srcBean.getAttributeValueById("uid") + ",ou=Users"

dn.real_root = dc=Domname,dc=com

############################# 
Syncoptions configuration 
#############################

lsc.syncoptions.Administrator = org.lsc.beans.syncoptions.PropertiesBasedSyncOptions
lsc.syncoptions.Administrator.default.action = M
lsc.syncoptions.Administrator.objectClass.action = M
lsc.syncoptions.Administrator.objectClass.force_value = srcBean.getAttributeValueById("cn").toUpperCase()
lsc.syncoptions.Administrator.userPassword.default_value = SecurityUtils.hash(SecurityUtils.HASH_SHA1, "defaultPassword")
lsc.syncoptions.Administrator.default.delimiter=;
lsc.syncoptions.Administrator.objectClass.force_value = "top";"user";"person";"organizationalPerson"
lsc.syncoptions.Administrator.userPrincipalName.force_value = srcBean.getAttributeValueById("uid") + "@Domname.com"
lsc.syncoptions.Administrator.userAccountControl.create_value = AD.userAccountControlSet ( "0", [AD.UAC_SET_NORMAL_ACCOUNT])

Ich vermute, dass dies etwas mit der baseDn der Task-Konfiguration im Teil der Quellkonfiguration zu tun hat.

Die Betriebssysteme sind Ubuntu 10.04 und Windows2K3

Jemand schlug mir vor, eine manuelle Synchronisierung zwischen ihnen durchzuführen, aber ich habe keine Anleitungen dazu gefunden. Und dieses Programm ist so ziemlich das einzige, was besagt, dass diese Art von Arbeit ohne Kosten ausgeführt wird.

7
Ben_A_135

Der Hauptgrund für NameNotFoundException ist, dass das gesuchte Objekt nicht existiert oder der Container , in dem Sie suchen, nicht richtig ist.

9
Anil_irocks88

Die Variable baseDn sollte der definierte Name des Basisobjekts der Suche sein, z. B. ou=users,dc=domname,dc=com.

siehe auch

7
Terry Gardner

Im Fall von Spring-ldap haben wir diesen Fehler erhalten, wenn wir den baseDn in der Kontextdatei (LdapContextSource Bean) und auch im createUser-Code zum Erstellen von userDn angegeben haben. Wir müssen den dc im buildUserDn() nicht erneut angeben.

protected Name buildUserDn(String userName) {
   DistinguishedName dn = new DistinguishedName();

   //only cn is required as the base dn is already specified in context file

   dn.add("cn", userName); 

   return dn;
}
2
Divya S

In Active Directory: Users catalog ist container-Klasse, nicht OrganizationalUnit, daher sollten Sie Folgendes verwenden: cn=users,dc=domname,dc=com

0
x0r