diff --git a/REFERENCE.md b/REFERENCE.md
index e9fd44c..b8f2f2a 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -1376,6 +1376,7 @@ The following parameters are available in the `sssd::domain` defined type:
* [`proxy_pam_target`](#-sssd--domain--proxy_pam_target)
* [`proxy_lib_name`](#-sssd--domain--proxy_lib_name)
* [`ldap_user_search_filter`](#-sssd--domain--ldap_user_search_filter)
+* [`custom_options`](#-sssd--domain--custom_options)
##### `name`
@@ -1728,7 +1729,17 @@ Default value: `undef`
Data type: `Optional[String]`
+##### `custom_options`
+Data type: `Optional[Hash]`
+
+If defined, this hash will be used to create the service
+section instead of the parameters. You must provide all options
+in the section you want to add. Each entry in the hash will be
+added as a simple init pair
+key = value
+under the section in the sssd.conf file.
+No error checking will be performed.
Default value: `undef`
diff --git a/manifests/domain.pp b/manifests/domain.pp
index d5e8c4c..10e3986 100644
--- a/manifests/domain.pp
+++ b/manifests/domain.pp
@@ -66,6 +66,14 @@
# @param proxy_lib_name
# @param ldap_user_search_filter
#
+# @param custom_options
+# If defined, this hash will be used to create the service
+# section instead of the parameters. You must provide all options
+# in the section you want to add. Each entry in the hash will be
+# added as a simple init pair key = value under the section in
+# the sssd.conf file.
+# No error checking will be performed.
+#
# @author https://github.com/simp/pupmod-simp-sssd/graphs/contributors
#
define sssd::domain (
@@ -112,7 +120,8 @@
Optional[String] $realmd_tags = undef,
Optional[String] $proxy_pam_target = undef,
Optional[String] $proxy_lib_name = undef,
- Optional[String] $ldap_user_search_filter = undef
+ Optional[String] $ldap_user_search_filter = undef,
+ Optional[Hash] $custom_options = undef
) {
sssd::config::entry { "puppet_domain_${name}":
diff --git a/templates/domain.erb b/templates/domain.erb
index 6740a9b..7ddb181 100644
--- a/templates/domain.erb
+++ b/templates/domain.erb
@@ -107,3 +107,8 @@ proxy_pam_target = <%= @proxy_pam_target %>
<% if @proxy_lib_name %>
proxy_lib_name = <%= @proxy_lib_name %>
<% end -%>
+<% if @custom_options -%>
+<% @custom_options.each do |opt,value| -%>
+<%= opt %> = <%= value %>
+<% end -%>
+<% end -%>