Configurable login method, list of admins or search
This commit is contained in:
		
							parent
							
								
									2c98e83332
								
							
						
					
					
						commit
						03f691d38d
					
				| 
						 | 
				
			
			@ -29,6 +29,13 @@ Examples:
 | 
			
		|||
                password => "1234",
 | 
			
		||||
                password_salt => "5678",
 | 
			
		||||
                tree_suffix => "dc=wikimedia,dc=de",
 | 
			
		||||
                admins => [
 | 
			
		||||
                    "cn=admin,dc=wikimedia,dc=de",
 | 
			
		||||
                ],
 | 
			
		||||
                login_search_dn=>"cn=admin,dc=wikimedia,dc=de",
 | 
			
		||||
                login_search_suffix=>"dc=wikimedia,dc=de",
 | 
			
		||||
                login_search_password=>"123",
 | 
			
		||||
		login_method=>"search" # or "listi or search allowed"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -100,6 +100,10 @@ class wmdeit_ldap::lam(
 | 
			
		|||
		 generate("/bin/sh","-c", "echo -n $password_salt | openssl base64")
 | 
			
		||||
		,  '\n', "\n "))
 | 
			
		||||
 | 
			
		||||
		$base64pw = base64( 'encode',"LAM_OBFUSCATE:${conf['login_search_password']}")
 | 
			
		||||
		$spw = strip (regsubst(
 | 
			
		||||
			generate("/bin/sh","-c", "echo -n '$base64pw' | /usr/bin/rot13")
 | 
			
		||||
		, '\n', "\n "))
 | 
			
		||||
 | 
			
		||||
		wmdeit_ldap::lam::config {$name:
 | 
			
		||||
			encoded_password => $encoded_password,
 | 
			
		||||
| 
						 | 
				
			
			@ -107,6 +111,22 @@ class wmdeit_ldap::lam(
 | 
			
		|||
			suffix_user => $conf['suffix_user'],
 | 
			
		||||
			suffix_group => $conf['suffix_group'],
 | 
			
		||||
			tree_suffix => $conf['tree_suffix'],
 | 
			
		||||
			admins => $conf['admins'],
 | 
			
		||||
			login_method => $conf['login_method'] ? {undef => "list", default => $conf['login_method']},
 | 
			
		||||
			login_search_suffix => $conf['login_search_suffix'],
 | 
			
		||||
			login_search_dn => $conf['login_search_dn'],
 | 
			
		||||
			login_search_filter => $conf['login_search_filter'] ? {
 | 
			
		||||
							undef => "uid=%USER%",
 | 
			
		||||
							default => $conf['login_search_filter']
 | 
			
		||||
						},
 | 
			
		||||
 | 
			
		||||
			login_search_password => $conf['login_search_password'] ? {
 | 
			
		||||
							undef => "",
 | 
			
		||||
							default => $spw
 | 
			
		||||
						},
 | 
			
		||||
 | 
			
		||||
				
 | 
			
		||||
					
 | 
			
		||||
		} 
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +140,14 @@ define wmdeit_ldap::lam::config
 | 
			
		|||
	$tree_suffix,
 | 
			
		||||
	$suffix_user = "ou=People,$tree_suffix",
 | 
			
		||||
	$suffix_group = "ou=Groups,$tree_suffix",
 | 
			
		||||
	$docroot = $::wmdeit_ldap::lam::docroot
 | 
			
		||||
	$docroot = $::wmdeit_ldap::lam::docroot,
 | 
			
		||||
	$admins = [],
 | 
			
		||||
	$login_method = "search",
 | 
			
		||||
	$login_search_suffix = "",
 | 
			
		||||
	$login_search_dn = "",
 | 
			
		||||
	$login_search_filter = "",
 | 
			
		||||
	$login_search_password = "",
 | 
			
		||||
	
 | 
			
		||||
){
 | 
			
		||||
	if (!$suffix_user) or (!$suffix_group) {
 | 
			
		||||
		fail("no suffix_user or suffix_group given")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,13 @@ ServerURL: ldap://localhost:389
 | 
			
		|||
# list of users who are allowed to use LDAP Account Manager
 | 
			
		||||
# names have to be seperated by semicolons
 | 
			
		||||
# e.g. admins: cn=admin,dc=yourdomain,dc=org;cn=root,dc=yourdomain,dc=org
 | 
			
		||||
Admins: cn=admin,dc=wikimedia,dc=de
 | 
			
		||||
Admins: <%- s='' -%>
 | 
			
		||||
<%- @admins.each do | admin | -%>
 | 
			
		||||
  <%= s %><%= admin -%>
 | 
			
		||||
  <%- s=';' -%>
 | 
			
		||||
  <%- end -%>
 | 
			
		||||
  
 | 
			
		||||
#=admin,dc=wikimedia,dc=de
 | 
			
		||||
 | 
			
		||||
# password to change these preferences via webfrontend (default: lam)
 | 
			
		||||
#Passwd: {SSHA}T7uRmkbOgzr9k0BVJi1GvqqwJJQ= iaZAeQ==
 | 
			
		||||
| 
						 | 
				
			
			@ -98,23 +104,23 @@ accessLevel: 100
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
# Login method.
 | 
			
		||||
loginMethod: list
 | 
			
		||||
loginMethod: <%= @login_method %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Search suffix for LAM login.
 | 
			
		||||
loginSearchSuffix: dc=yourdomain,dc=org
 | 
			
		||||
loginSearchSuffix: <%= @login_search_suffix %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Search filter for LAM login.
 | 
			
		||||
loginSearchFilter: uid=%USER%
 | 
			
		||||
loginSearchFilter: <%= @login_search_filter %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Bind DN for login search.
 | 
			
		||||
loginSearchDN: 
 | 
			
		||||
loginSearchDN: <%= @login_search_dn %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Bind password for login search.
 | 
			
		||||
loginSearchPassword: 
 | 
			
		||||
loginSearchPassword: <%= @login_search_password %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# HTTP authentication for LAM login.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue