diff --git a/plugins/module_utils/ansible_freeipa_module.py b/plugins/module_utils/ansible_freeipa_module.py
index cf62b026a5580c7771e4982a13788019854e41e3..922cfdb03af114fff93b8615d0026dbb688dae97 100644
--- a/plugins/module_utils/ansible_freeipa_module.py
+++ b/plugins/module_utils/ansible_freeipa_module.py
@@ -276,14 +276,14 @@ else:
                 pass
         raise ValueError("Invalid date '%s'" % value)
 
-    def compare_args_ipa(module, args, ipa):  # noqa
+    def compare_args_ipa(module, args, ipa, ignore=None):  # noqa
         """Compare IPA obj attrs with the command args.
 
         This function compares IPA objects attributes with the args the
-        module is intending to use to call a command. This is useful to know
-        if call to IPA server will be needed or not.
-        In other to compare we have to prepare the perform slight changes in
-        data formats.
+        module is intending to use to call a command. ignore can be a list
+        of attributes, that should be ignored in the comparison.
+        This is useful to know if a call to IPA server will be needed or not.
+        In order to compare we have to perform slight changes in data formats.
 
         Returns True if they are the same and False otherwise.
         """
@@ -307,7 +307,12 @@ else:
         if not (isinstance(args, dict) and isinstance(ipa, dict)):
             raise TypeError("Expected 'dicts' to compare.")
 
-        for key in args.keys():
+        # Create filtered_args using ignore
+        if ignore is None:
+            ignore = []
+        filtered_args = [key for key in args if key not in ignore]
+
+        for key in filtered_args:
             if key not in ipa:
                 module.debug(
                     base_debug_msg + "Command key not present in IPA: %s" % key