ACLS implemenetd
This commit is contained in:
		
							parent
							
								
									89c64af144
								
							
						
					
					
						commit
						a143e8639a
					
				| 
						 | 
				
			
			@ -68,25 +68,60 @@ class wmdeit_ldap (
 | 
			
		|||
	],
 | 
			
		||||
	$ssldir = "/etc/ldap/ssl",
 | 
			
		||||
 | 
			
		||||
	$acls = [
 | 
			
		||||
		# grant accces to domain admins	
 | 
			
		||||
		'to *  by set="user/uid & [cn=Domain Admins,cn=groups,dc=wikimedia,dc=de]/memberUid" write by * break',
 | 
			
		||||
		'to *  by set="user/uid & [cn=Administrators,cn=Builtin,dc=wikimedia,dc=de]/memberUid" write by * break',
 | 
			
		||||
	$acl = {
 | 
			
		||||
		# Super access to local root user	
 | 
			
		||||
		'0 to *' => [
 | 
			
		||||
			'by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage',
 | 
			
		||||
			'by * break',
 | 
			
		||||
		],
 | 
			
		||||
		# Admin rights for members of Admin group
 | 
			
		||||
		'1 to *' => [
 | 
			
		||||
			"by set=\"user & [cn=Admins,ou=Groups,$database]/member\" write",
 | 
			
		||||
			'by * break'
 | 
			
		||||
		],
 | 
			
		||||
		# let users modify their passwords, and disable read acess to all others
 | 
			
		||||
		'2 to attrs=userPassword,sambaNTPassword' => [
 | 
			
		||||
			"by self write",
 | 
			
		||||
			"by anonymous auth",
 | 
			
		||||
			"by * none",
 | 
			
		||||
		],
 | 
			
		||||
		# let users read all
 | 
			
		||||
		'3 to *' => [
 | 
			
		||||
		        "by anonymous break",	
 | 
			
		||||
			"by * read",
 | 
			
		||||
		],
 | 
			
		||||
		"4 to dn.subtree=\"$database\" attrs=entry,objectClass" => [
 | 
			
		||||
		        "by anonymous read",
 | 
			
		||||
			"by * break",
 | 
			
		||||
		],
 | 
			
		||||
		'5 to *' => [
 | 
			
		||||
		        "by * none",	
 | 
			
		||||
		]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	#	'by set="user & [cn=Admins,ou=Groups,dc=wikimedia,dc=de]/member" write by * break'
 | 
			
		||||
 | 
			
		||||
		# super acces to local root user	
 | 
			
		||||
		'to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break',
 | 
			
		||||
	#	'to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break',
 | 
			
		||||
		# grant accces to domain admins	
 | 
			
		||||
	#		'to *  by set="user/uid & [cn=Domain Admins,cn=groups,dc=wikimedia,dc=de]/memberUid" write by * break',
 | 
			
		||||
	#		'to *  by set="user/uid & [cn=Administrators,cn=Builtin,dc=wikimedia,dc=de]/memberUid" write by * break',
 | 
			
		||||
	#		'to *  by set="user & [cn=Admins,ou=Groups,dc=wikimedia,dc=de]/member" write by * break',
 | 
			
		||||
	#		'to *  by set="user/uid & [cn=Administrators,cn=Builtin,dc=wikimedia,dc=de]/memberUid" write by * break',
 | 
			
		||||
 | 
			
		||||
		
 | 
			
		||||
		# let users modify their passwords
 | 
			
		||||
		'to attrs=userPassword by self write by anonymous auth by dn="cn=admin,dc=wikimedia,dc=de" write by * none',
 | 
			
		||||
	# let users modify their passwords
 | 
			
		||||
	#	'to attrs=userPassword by self write by anonymous auth by dn="cn=admin,dc=wikimedia,dc=de" write by * none',
 | 
			
		||||
 | 
			
		||||
	#	'to attrs=entry,children,objectClass,uid by anonymous read by * break',
 | 
			
		||||
 | 
			
		||||
		'to attrs=entry,children,objectClass,uid by anonymous read by * break',
 | 
			
		||||
	#	'to * by anonymous none by * break',
 | 
			
		||||
 | 
			
		||||
		'to * by anonymous none by * break',
 | 
			
		||||
 | 
			
		||||
		'to dn.base="" by * read',
 | 
			
		||||
		'to * by self write by dn="cn=admin,dc=wikimedia,dc=de" write by * read',
 | 
			
		||||
	]
 | 
			
		||||
	#	'to dn.base="" by * read',
 | 
			
		||||
	#	'to * by self write by dn="cn=admin,dc=wikimedia,dc=de" write by * read',
 | 
			
		||||
 | 
			
		||||
){
 | 
			
		||||
	$clientcert = $facts[clientcert]
 | 
			
		||||
| 
						 | 
				
			
			@ -263,33 +298,48 @@ class wmdeit_ldap (
 | 
			
		|||
		rootpw => $rootpw,
 | 
			
		||||
#		syncrepl => $syncrepl,
 | 
			
		||||
		mirrormode => $mirrormode,
 | 
			
		||||
	} #->
 | 
			
		||||
#	openldap::server::overlay { "memberof on $database":
 | 
			
		||||
#		ensure => present,
 | 
			
		||||
#	} -> 
 | 
			
		||||
	} 
 | 
			
		||||
	->
 | 
			
		||||
	openldap::server::overlay { "memberof on $database":
 | 
			
		||||
		ensure => present,
 | 
			
		||||
	} 
 | 
			
		||||
#	-> 
 | 
			
		||||
#	openldap::server::overlay { "syncprov on $database":
 | 
			
		||||
#		ensure => present,
 | 
			
		||||
#	} ->
 | 
			
		||||
#	openldap::server::overlay { "smbk5pwd on $database":
 | 
			
		||||
#		ensure => present,
 | 
			
		||||
#	}
 | 
			
		||||
#	} 
 | 
			
		||||
	->
 | 
			
		||||
	openldap::server::overlay { "smbk5pwd on $database":
 | 
			
		||||
		ensure => present,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#	$acls.each |Integer $i, String $acl | {
 | 
			
		||||
#	$acls.each |Integer $i, $acl | {
 | 
			
		||||
#		notify{"Set ACL $i $acl":}
 | 
			
		||||
#		openldap::server::access { "{$i}$acl":
 | 
			
		||||
#		openldap::server::access { "$i on $database":
 | 
			
		||||
#			suffix   => "$database",
 | 
			
		||||
#			ensure => present,
 | 
			
		||||
#			access => $acl['access'],
 | 
			
		||||
#			what => $acl['to'],
 | 
			
		||||
#		}
 | 
			
		||||
#	}
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
	openldap::server::access_wrapper { $database :
 | 
			
		||||
		acl => $acl,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#'''''##################################################################################################
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
##	openldap::server::access { '{0}to *  by set="user/uid & [cn=Domain Admins,cn=groups,dc=wikimedia,dc=de]/memberUid" write by * break':
 | 
			
		||||
#	openldap::server::access { '{0}to *  by set="user/uid & [cn=Domain Admins,cn=groups,dc=wikimedia,dc=de]/memberUid" write by * break on $database':
 | 
			
		||||
#		suffix   => "$database",
 | 
			
		||||
#		access => '{0}to *  by set="user/uid & [cn=Domain Admins,cn=groups,dc=wikimedia,dc=de]/memberUid" write by * break',
 | 
			
		||||
#		ensure => present,
 | 
			
		||||
#	}
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
#	openldap::server::access { '{1}to *  by set="user/uid & [cn=Administrators,cn=Builtin,dc=wikimedia,dc=de]/memberUid" write by * break':
 | 
			
		||||
#		suffix   => "$database",
 | 
			
		||||
#		ensure => present,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue