> 
> 
> What is exactly the configuration of your mainIdentifier? Could you send an
> anonymized version of your lsc.xml ?
> 
of course!

Francesco

<?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.0.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>openldap-conn</name>
      <url>ldaps://ldap.example.org:636/dc=example,dc=org</url>
      <username>cn=provisionator,ou=agents,dc=example,dc=org</username>
      <password>secret</password>
      <authentication>SIMPLE</authentication>
      <referral>IGNORE</referral>
      <derefAliases>NEVER</derefAliases>
      <version>VERSION_3</version>
      <pageSize>-1</pageSize>
      <factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
      <tlsActivated>false</tlsActivated>
    </ldapConnection>
 
    <ldapConnection>
      <name>ad-conn</name>
      <url>ldaps://dc1.ateneo.example.org:636/ou=people,dc=ateneo,dc=example,dc=org</url>
      <username>cn=admin ad,cn=users,dc=ateneo,dc=example,dc=org</username> 
      <password>secret</password>
      <authentication>SIMPLE</authentication>
      <referral>IGNORE</referral>
      <derefAliases>NEVER</derefAliases>
      <version>VERSION_3</version>
      <pageSize>1000</pageSize>
      <factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
      <tlsActivated>false</tlsActivated>
    </ldapConnection>
  </connections>

<!--  ./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>/opt/lsc/var/async/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 -->
  <tasks>

<!--  ./task Task node, this is the main node, in which synchronization is defined -->
    <task>
<!--  ./name mandatory task node this is the main node, in which synchronization is defined -->
      <name>openldap2ad</name>
<!--  ./bean optional bean node, default to org.lsc.beans.SimpleBean, define the pivot object used to store datasets and values -->
      <bean>org.lsc.beans.SimpleBean</bean>
<!--  ./sourceService mandatory node containing definition of the source service settings  
			possible builtin types are :
				databaseSourceService, ldapSourceService 
					Plugins also provides: syncreplSourceService, nisSourceService
		-->
      <ldapSourceService>
<!-- 	A database source service will have to contain at least a name, a connection reference, a request for listing available objects,
			and a request to get a complete object from its ids -->
        <name>openldap-service</name>
        <connection reference="openldap-conn" />
	<baseDn>ou=people,dc=example,dc=org</baseDn>
        <pivotAttributes><string>uid</string></pivotAttributes>
	<fetchedAttributes>
          <string>cn</string>
          <string>gecos</string>
          <string>sn</string>
          <string>givenName</string>
          <string>objectClass</string>
          <string>uid</string>
          <string>mail</string>
	  <string>ou</string>
        </fetchedAttributes>
        <getAllFilter>(&amp;(ou=people)(objectClass=exampleAccount))</getAllFilter> 
        <getOneFilter>(&amp;(objectClass=exampleAccount)(uid={uid}))</getOneFilter>
	<cleanFilter>(&amp;(objectClass=exampleAccount)(uid={sAMAccountName}))</cleanFilter> 
      </ldapSourceService>
<!--  ./destinationService mandatory node containing definition of the source service settings  
			possible builtin types are :
				databaseDestinationService, ldapDestinationService 
					Plugins also provides: jndiExecDstService
		-->
      <ldapDestinationService>
<!-- 	A ldap destination service will have to contain at least a name, a connection reference, a base DN, a filter to list
			entries, a filter to get a particular entry, a list of pivot attributes and a list of fetched attributes -->
        <name>ad-service</name>
        <connection reference="ad-conn" />
        <baseDn>ou=people,dc=ateneo,dc=example,dc=org</baseDn>
        <pivotAttributes>
          <string>sAMAccountName</string>
        </pivotAttributes>
	<fetchedAttributes>
          <string>objectclass</string> 
          <string>sn</string>
          <string>givenName</string>
          <string>mail</string>
	  <string>sAMAccountName</string>
	  <string>ou</string> 
	  <string>userPrincipalName</string>
	  <string>description</string>
        </fetchedAttributes>
	<getAllFilter>(&amp;(ou=people)(objectClass=user))</getAllFilter>
	<getOneFilter>(&amp;(objectClass=user)(sAMAccountName={uid}))</getOneFilter>
      </ldapDestinationService>
      <!--  ./syncOptions This mandatory node describes how to handle the various situations encountered while synchronizing datasets.
	   It must contains a main identifier construction rule and a default policy.
	   It may contains synchronization conditions, a default delimiter and datasets synchronization rules (attribute nodes) -->
      <propertiesBasedSyncOptions>
	<mainIdentifier>"cn=" + srcBean.getDatasetFirstValueById("uid") + ",ou=people,dc=ateneo,dc=example,dc=org"</mainIdentifier>
	<defaultDelimiter>;</defaultDelimiter>
	<defaultPolicy>FORCE</defaultPolicy>
	<dataset>
	  <name>objectClass</name>
	  <policy>FORCE</policy>
	  <forceValues>
	    <string>"organizationalPerson"</string>
	    <string>"person"</string>
	    <string>"top"</string>
	    <string>"user"</string>
	  </forceValues>
	</dataset>
	<dataset>
	  <name>description</name>
	  <policy>FORCE</policy>
	  <createValues>
	    <string>srcBean.getDatasetFirstValueById("gecos")</string>
	  </createValues>
	</dataset>
	<dataset>
	  <name>cn</name>
	  <policy>FORCE</policy>
	  <createValues>
	    <string>srcBean.getDatasetFirstValueById("uid")</string>
	  </createValues>
	</dataset>
	<dataset>
	  <!-- userPrincipalName = uid + "@lsc-project.org" -->
	  <name>userPrincipalName</name>
	  <policy>FORCE</policy>
	  <forceValues>
	    <string>srcBean.getDatasetFirstValueById("uid") + "@ateneo.example.org"</string>
	  </forceValues>
	</dataset>
	<dataset>
	  <name>sAMAccountName</name>
	  <policy>FORCE</policy>
	  <createValues>
	    <string>srcBean.getDatasetFirstValueById("uid")</string>
	  </createValues>
	</dataset>
	<dataset>
	  <name>userAccountControl</name>
	  <policy>KEEP</policy>
	  <createValues>
	    <string>AD.userAccountControlSet( "0", [AD.UAC_SET_NORMAL_ACCOUNT])</string>
	  </createValues>
	</dataset>
	<dataset>
	  <name>ou</name>
          <policy>FORCE</policy>
          <forceValues>
            <string>gr:
		<![CDATA[gr:
dstOu = []
permittedOu = ["people", "Esterni", "Dipendenti", "studenti", "dottorandi", "alum", "specializzandi"]
srcOu = srcBean.getDatasetById("ou")
srcOu.each { if (permittedOu.contains(it)) { dstOu << it } }
dstOu
		]]>
	    </string>
          </forceValues>
	</dataset>

	<!--
	<dataset>
	  <name>pwdLastSet</name>
	  <policy>KEEP</policy>
	  <createValues>
	    <string>"0"</string>
	  </createValues>
	</dataset>
	<dataset>
	  <name>unicodePwd</name>
	  <policy>KEEP</policy>
	  <createValues>
	    <string>AD.getUnicodePwd("changeit")</string>
	  </createValues>
	</dataset>
	-->
      </propertiesBasedSyncOptions>
    </task>
  </tasks>
<!-- ./security This mandatory node contains the security settings used by LSC -->
  <security>
    <!--
    <encryption>
      <keyfile>etc/lsc.key</keyfile>
      <algorithm>AES</algorithm>
      <strength>128</strength>
    </encryption>
    -->
  </security>
</lsc>
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users

Reply via email to