Hi,
try this filter for your source
<getAllFilter><![CDATA[(&(objectClass=user)(!(objectClass=computer)))]]></getAllFilter>
<getOneFilter><![CDATA[(&(objectClass=user)(!(objectClass=computer))
(sAMAccountName={sAMAccountName}) )]]></getOneFilter>
<cleanFilter><![CDATA[(&(objectClass=user)(!(objectClass=computer))(sAMAccountName={uid}))]]></cleanFilter>
De: "Thang Duong Bao" <[email protected]>
À: "lsc-users" <[email protected]>
Envoyé: Jeudi 19 Janvier 2017 11:31:52
Objet: [lsc-users] Sync data from Active Directory TO OpenLDAP
Hello,
I use Active Directory in Windows Server 2003, now I would like to sync these
database to an OpenLDAP server setup on Google Cloud [AD -> OpenLDAP], this
server will use to authenticate for user to use company service (Forum, Chat,
Website login ect...) (OpenLDAP like a read-only server with data pull from
AD).
This is my lsc.xml source, when try synchronization , alway report "ERROR -
Synchronization aborted because no source object has been found"
<?xml version="1.0" ?>
<!--
In the following file, comments are describing each node. Elements are
referenced through XPath expression, whereas attributes are prefixed with
'@'
//lsc Root node of the XML configuration file
@xmlns XML Schema validation is not ready yet (Reserved for futur use)
@id optional, added by XML API
@revision mandatory, used by the Web Administration Interface to version
this file
-->
<lsc xmlns=" http://lsc-project.org/XSD/lsc-core-2.1.xsd " revision="0">
<!-- ./connections Connections list node, must contain at least two connections
-->
<connections>
<!--
./connection Connection node, include definition of the required parameters.
Depending on the connection type, properties vary.
Existing class type are : ldapConnection, databaseConnnection
Plugins also provides : nisConnection, jndiExecDstConnection
-->
<ldapConnection>
<name>AD</name>
<!-- ./url mandatory, the JNDI URL -->
<url>ldap:// ldap.domain.xyz/dc=localdomain,dc=xyz </url>
<!-- ./username mandatory, the DN to bind with -->
<username>administrator@ localdomain.xyz </username>
<!-- ./password mandatory, credentials to bind with -->
<password>ad_password</password>
<!-- ./authentication mandatory, must contain either ANONYMOUS, SIMPLE, SASL,
GSSAPI or DIGEST_MD5 -->
<authentication>SIMPLE</authentication>
<!-- ./referral mandatory, must contain either IGNORE, THROUGH, THROW or FOLLOW
-->
<referral>IGNORE</referral>
<!-- ./derefAliases mandatory, must contain either NEVER, SEARCH, FIND, ALWAYS
-->
<derefAliases>NEVER</derefAliases>
<!-- ./version mandatory, must contain either VERSION_2, VERSION_3 -->
<version>VERSION_3</version>
<!-- ./pageSize optional, specify the paged size when searching -->
<pageSize>1000</pageSize>
<!-- ./factory mandatory, points to LDAP Context Factory,
com.sun.jndi.ldap.LdapCtxFactory for a SUN JDK -->
<factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
<!-- ./tlsActivated optional, specify if SSL/TLS is activated to connect to the
LDAP server -->
<tlsActivated>false</tlsActivated>
</ldapConnection>
<ldapConnection>
<name>LDAP</name>
<!-- ./url mandatory, the JNDI URL -->
<url>ldap:// 127.0.0.1/dc=localdomain,dc=xyz </url>
<!-- ./username mandatory, the DN to bind with -->
<username>cn=admin,dc=localdomain,dc=xyz</username>
<!-- ./password mandatory, credentials to bind with -->
<password>ldap_password</password>
<!-- ./authentication mandatory, must contain either ANONYMOUS, SIMPLE, SASL,
GSSAPI or DIGEST_MD5 -->
<authentication>SIMPLE</authentication>
<!-- ./referral mandatory, must contain either IGNORE, THROUGH, THROW or FOLLOW
-->
<referral>IGNORE</referral>
<!-- ./derefAliases mandatory, must contain either NEVER, SEARCH, FIND, ALWAYS
-->
<derefAliases>NEVER</derefAliases>
<!-- ./version mandatory, must contain either VERSION_2, VERSION_3 -->
<version>VERSION_3</version>
<!-- ./pageSize optional, specify the paged size when searching -->
<pageSize>-1</pageSize>
<!-- ./factory mandatory, points to LDAP Context Factory,
com.sun.jndi.ldap.LdapCtxFactory for a SUN JDK -->
<factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
<!-- ./tlsActivated optional, specify if SSL/TLS is activated to connect to the
LDAP server -->
<tlsActivated>false</tlsActivated>
</ldapConnection>
</connections>
<tasks>
<task>
<name>adUser</name>
<bean>org.lsc.beans.SimpleBean</bean>
<ldapSourceService>
<name>ad-source-service</name>
<connection reference="AD" />
<baseDn>ou=ABC,dc=localdomain,dc=xyz</baseDn>
<pivotAttributes>
<string>sAMAccountName</string>
</pivotAttributes>
<fetchedAttributes>
<string>cn</string>
<string>description</string>
<string>givenName</string>
<string>mail</string>
<string>objectclass</string>
<string>pwdLastSet</string>
<string>sAMAccountName</string>
<string>sn</string>
<!-- if request password, need use tls connection -->
<!-- <string>unicodePwd</string> -->
<string>userAccountControl</string>
<string>userPrincipalName</string>
</fetchedAttributes>
<getAllFilter><![CDATA[(&(objectClass=user)(!(objectClass=computer)))]]></getAllFilter>
<getOneFilter><![CDATA[(&(objectClass=user)(!(objectClass=computer))(sAMAccountName={uid}))]]></getOneFilter>
<cleanFilter><![CDATA[(&(objectClass=user)(!(objectClass=computer))(sAMAccountName={uid}))]]></cleanFilter>
</ldapSourceService>
<ldapDestinationService>
<name>openldap-dst-service</name>
<connection reference="LDAP" />
<baseDn>ou=ABC,dc=localdomain,dc=xyz</baseDn>
<pivotAttributes>
<string>uid</string>
</pivotAttributes>
<fetchedAttributes>
<string>cn</string>
<string>description</string>
<string>givenName</string>
<string>mail</string>
<string>sn</string>
<string>uid</string>
<!-- if request password, need use tls connection -->
<!-- <string>userPassword</string> -->
</fetchedAttributes>
<getAllFilter><![CDATA[(objectClass=inetOrgPerson)]]></getAllFilter>
<getOneFilter><![CDATA[(&(objectClass=inetOrgPerson)(uid={uid}))]]></getOneFilter>
<!--<cleanFilter><![CDATA[(&(objectClass=inetOrgPerson)(uid={sAMAccountName}))]]></cleanFilter>-->
</ldapDestinationService>
<propertiesBasedSyncOptions>
<mainIdentifier>"cn=" + srcBean.getDatasetFirstValueById("cn") +
",ou=ABC,dc=localdomain,dc=xyz"</mainIdentifier>
<defaultDelimiter>;</defaultDelimiter>
<defaultPolicy>FORCE</defaultPolicy>
<conditions>
<create>true</create>
<update>true</update>
<delete>true</delete>
<changeId>true</changeId>
</conditions>
<dataset>
<name>uid</name>
<policy>KEEP</policy>
<createValues>
<string>srcBean.getDatasetFirstValueById("sAMAccountName")</string>
</createValues>
</dataset>
</propertiesBasedSyncOptions>
</task>
</tasks>
<!-- ./audits Audits list node -->
<audits>
<!--./audit Audit node, here a CSV audit, may also be a LDIF or any contributed
audit type -->
<csvAudit>
<!-- ./name mandatory, audit name -->
<name>csv</name>
<!-- ./append optional, default to false, specify to create a new log file or
to append to the existing one -->
<append>true</append>
<!-- ./operations optional, comma separated list of operations (create, delete,
update or rename) -->
<operations>create, delete</operations>
<!-- ./file mandatory, define the location of the file where the CSV data will
be written -->
<file>/tmp/dump.csv</file>
<!-- ./datasets optional, comma separated list of datasets modification to log
-->
<datasets>cn, dn</datasets>
<!-- ./separator optional, default to ";", specify the values separator -->
<separator>,</separator>
</csvAudit>
</audits>
<!-- ./tasks Task list node, must contain at least one task -->
<!-- ./security This mandatory node contains the security settings used by LSC
-->
<security>
<!-- ./encryption This optional node contains the encryption settings -->
<encryption>
<!-- ./keyfile This optional node contains the keyfile location -->
<keyfile>etc/lsc.key</keyfile>
<!-- ./algorithm This optional node contains the encryption algorithm -->
<algorithm>AES</algorithm>
<!-- ./strength This optional node contains the algorithm key length -->
<strength>128</strength>
</encryption>
</security>
</lsc>
Run command to test: /usr/bin/lsc -f /etc/lsc/ad2openldap -s all -c all -n
This is log:
Jan 19 10:00:30 - INFO - Logging configuration successfully loaded from
/etc/lsc/ad2openldap/logback.xml
Jan 19 10:00:30 - INFO - LSC configuration successfully loaded from
/etc/lsc/ad2openldap/
Jan 19 10:00:30 - INFO - Connecting to LDAP server ldap://
127.0.0.1/dc=localdomain,dc=xyz as cn=admin,dc=localdomain,dc=xyz
Jan 19 10:00:30 - INFO - Connecting to LDAP server ldap://
ldap.domain.xyz/dc=localdomain,dc=xyz as administrator@ localdomain.xyz
Jan 19 10:00:31 - INFO - Starting sync for adUser
Jan 19 10:00:31 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:31 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:31 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:31 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:31 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:32 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - Synchronization aborted because no source object has
been found !
Jan 19 10:00:33 - ERROR - All entries: 25, to modify entries: 0, successfully
modified entries: 0, errors: 25
Jan 19 10:00:33 - INFO - Starting clean for adUser
Jan 19 10:00:33 - ERROR - Empty or non existant destination (no IDs found)
Any help would be appreciated
Best regards,
Thang Duong Bao
Mobile: (+84) 918 753 062
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org
lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users
--
Thierry DONGMO
Université Paris Dauphine PSL
D109 - 0172605255
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org
lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users