我正在尝试将OpenLDAP和Active目录同步.为此,我使用了一个名为LSC-Project的程序,它被指定用于执行此类操作.
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
这是程序运行的配置文件:
############################### 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])
我怀疑它与源配置部分中的Task配置的baseDn有关.
操作系统是ubuntu 10.04和Windows2K3
有人建议我在他们之间进行手动同步,但我没有找到任何指南.而且这个程序几乎是唯一可以说没有成本的这种工作.