diff --git a/_modules/runtest/tempest_sections/identity.py b/_modules/runtest/tempest_sections/identity.py
index 400830b..7864cda 100644
--- a/_modules/runtest/tempest_sections/identity.py
+++ b/_modules/runtest/tempest_sections/identity.py
@@ -84,17 +84,27 @@
             'keystone.server.bind.private_port', c)
         return "{}://{}:{}/v3".format(protocol, vip, port)
 
+    def _get_security_compliance_value(self, name):
+        c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+        security_compliance = self.get_item_when_condition_match(
+            'keystone.server.security_compliance', c)
+
+        if not security_compliance:
+            return
+
+        return security_compliance.get(name)
+
     @property
     def user_lockout_duration(self):
-        pass
+        return self._get_security_compliance_value('lockout_duration')
 
     @property
     def user_lockout_failure_attempts(self):
-        pass
+        return self._get_security_compliance_value('lockout_failure_attempts')
 
     @property
     def user_unique_last_password_count(self):
-        pass
+        return self._get_security_compliance_value('unique_last_password_count')
 
     @property
     def v2_admin_endpoint_type(self):
diff --git a/_modules/runtest/tempest_sections/identity_feature_enabled.py b/_modules/runtest/tempest_sections/identity_feature_enabled.py
index e3fd4e2..fa9d66f 100644
--- a/_modules/runtest/tempest_sections/identity_feature_enabled.py
+++ b/_modules/runtest/tempest_sections/identity_feature_enabled.py
@@ -1,10 +1,9 @@
-
 import base_section
 
 from runtest import conditions
 
-class IdentityFeatureEnabled(base_section.BaseSection):
 
+class IdentityFeatureEnabled(base_section.BaseSection):
     name = "identity-feature-enabled"
     options = [
         'api_extensions',
@@ -17,7 +16,6 @@
         'trust',
     ]
 
-
     @property
     def api_extensions(self):
         pass
@@ -37,9 +35,10 @@
     @property
     def domain_specific_drivers(self):
         c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
-        keystone_domain = self.get_item_when_condition_match('keystone.server.domain', c)
+        keystone_domain = self.get_item_when_condition_match(
+            'keystone.server.domain', c)
         if keystone_domain:
-           return True
+            return True
 
     @property
     def forbid_global_implied_dsr(self):
@@ -47,7 +46,11 @@
 
     @property
     def security_compliance(self):
-        pass
+        c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+        security_compliance = self.get_item_when_condition_match(
+            'keystone.server.security_compliance', c)
+        if security_compliance:
+            return True
 
     @property
     def trust(self):
