lsc is installed and a posixgroup -> groupofnames syncher is configured
This commit is contained in:
		
							parent
							
								
									2ed29c601f
								
							
						
					
					
						commit
						baae769be1
					
				| 
						 | 
				
			
			@ -259,9 +259,18 @@ class wmdeit_ldap (
 | 
			
		|||
	file {"/etc/default/lsc":
 | 
			
		||||
		ensure => file,
 | 
			
		||||
		content => template("wmdeit_ldap/lsc.erb")
 | 
			
		||||
	} ->
 | 
			
		||||
	file {"/etc/lsc/lsc.xml":
 | 
			
		||||
		ensure => file,
 | 
			
		||||
		content => template("wmdeit_ldap/lsc.xml.erb")
 | 
			
		||||
	} ->
 | 
			
		||||
	service {"lsc":
 | 
			
		||||
		ensure => running,
 | 
			
		||||
		subscribe => File["/etc/lsc/lsc.xml"],
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#	openldap::server::globalconf { 'TLSVerifyClient':
 | 
			
		||||
#		ensure  => present,
 | 
			
		||||
#		value   => { "TLSVerifyClient"=>"never" }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,177 @@
 | 
			
		|||
<?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>
 | 
			
		||||
	<ldapConnection>
 | 
			
		||||
		<name>ldap-conn</name>
 | 
			
		||||
		<!--  ./url mandatory, the JNDI URL -->
 | 
			
		||||
		<url>ldap://localhost:389/dc=wikimedia,dc=de</url>
 | 
			
		||||
		<!--  ./username mandatory, the DN to bind with -->
 | 
			
		||||
		<username>cn=admin,dc=wikimedia,dc=de</username>
 | 
			
		||||
		<!--  ./password mandatory, credentials to bind with -->
 | 
			
		||||
		<password>123</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>groupsync</name>
 | 
			
		||||
		<bean>org.lsc.beans.SimpleBean</bean>
 | 
			
		||||
 | 
			
		||||
		<ldapSourceService>
 | 
			
		||||
			<name>group-source-service</name>
 | 
			
		||||
			<connection reference="ldap-conn" />
 | 
			
		||||
			<baseDn>dc=wikimedia,dc=de</baseDn>
 | 
			
		||||
			<pivotAttributes>
 | 
			
		||||
				<string>cn</string>
 | 
			
		||||
			</pivotAttributes>
 | 
			
		||||
			<fetchedAttributes>
 | 
			
		||||
				<string>cn</string>
 | 
			
		||||
				<string>memberUid</string>
 | 
			
		||||
			</fetchedAttributes>
 | 
			
		||||
			<getAllFilter><![CDATA[(objectClass=posixGroup)]]></getAllFilter>
 | 
			
		||||
			<getOneFilter><![CDATA[(&(objectClass=posixGroup)(cn={cn}))]]></getOneFilter>
 | 
			
		||||
			<cleanFilter><![CDATA[(&(objectClass=posixGroup)(cn={cn}))]]></cleanFilter>
 | 
			
		||||
		</ldapSourceService>
 | 
			
		||||
		<ldapDestinationService>
 | 
			
		||||
			<name>group-dst-service</name>
 | 
			
		||||
			<connection reference="ldap-conn" />
 | 
			
		||||
			<baseDn>dc=wikimedia,dc=de</baseDn>
 | 
			
		||||
			<pivotAttributes>
 | 
			
		||||
				<string>cn</string>
 | 
			
		||||
			</pivotAttributes>
 | 
			
		||||
			<fetchedAttributes>
 | 
			
		||||
				<string>cn</string>
 | 
			
		||||
				<string>member</string>
 | 
			
		||||
				<string>objectClass</string>
 | 
			
		||||
			</fetchedAttributes>
 | 
			
		||||
			<getAllFilter><![CDATA[(objectClass=groupeOfNames)]]></getAllFilter>
 | 
			
		||||
			<getOneFilter><![CDATA[(&(objectClass=groupOfNames)(cn={cn}))]]></getOneFilter>
 | 
			
		||||
		</ldapDestinationService>
 | 
			
		||||
 | 
			
		||||
		<propertiesBasedSyncOptions>
 | 
			
		||||
			<mainIdentifier>js:"cn=" + javax.naming.ldap.Rdn.escapeValue(srcBean.getDatasetFirstValueById("cn").toLowerCase()) + ",dc=wikimedia,dc=de"</mainIdentifier>
 | 
			
		||||
			<defaultDelimiter>;</defaultDelimiter>
 | 
			
		||||
			<defaultPolicy>FORCE</defaultPolicy>
 | 
			
		||||
			<conditions>
 | 
			
		||||
				<create>true</create>
 | 
			
		||||
				<update>true</update>
 | 
			
		||||
				<delete>true</delete>
 | 
			
		||||
				<changeId>true</changeId>
 | 
			
		||||
			</conditions>
 | 
			
		||||
			<dataset>
 | 
			
		||||
				<name>objectclass</name>
 | 
			
		||||
				<policy>KEEP</policy>
 | 
			
		||||
				<createValues>
 | 
			
		||||
					<string>"groupOfNames"</string>
 | 
			
		||||
					<string>"posixGroup"</string>
 | 
			
		||||
					<string>"top"</string>
 | 
			
		||||
				</createValues>
 | 
			
		||||
			</dataset>  
 | 
			
		||||
			<dataset>
 | 
			
		||||
				<name>member</name>
 | 
			
		||||
				<policy>FORCE</policy>
 | 
			
		||||
				<forceValues>
 | 
			
		||||
					<string>
 | 
			
		||||
				         <![CDATA[rjs:
 | 
			
		||||
			                var membersSrcUid = srcBean.getDatasetValuesById("memberUid");
 | 
			
		||||
			                var membersDstDn = new java.util.ArrayList();
 | 
			
		||||
			                for  (var i=0; i<membersSrcUid.size(); i++) {
 | 
			
		||||
		                        var memberSrcUid = membersSrcUid.get(i);
 | 
			
		||||
		                        var dn = "uid=" + memberSrcUid + ",ou=users,dc=example1000,dc=com";
 | 
			
		||||
		                        membersDstDn.add(dn);
 | 
			
		||||
                			}
 | 
			
		||||
			                membersDstDn
 | 
			
		||||
					]]> 				
 | 
			
		||||
					</string>
 | 
			
		||||
				</forceValues>
 | 
			
		||||
			</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>
 | 
			
		||||
 | 
			
		||||
<!-- ./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>
 | 
			
		||||
		Loading…
	
		Reference in New Issue