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 166bebd..b105e4d 100644
--- a/_modules/runtest/tempest_sections/identity_feature_enabled.py
+++ b/_modules/runtest/tempest_sections/identity_feature_enabled.py
@@ -1,6 +1,8 @@
 
 import base_section
 
+from runtest import conditions
+
 class IdentityFeatureEnabled(base_section.BaseSection):
 
     name = "identity-feature-enabled"
@@ -34,7 +36,11 @@
 
     @property
     def domain_specific_drivers(self):
-        pass
+        c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+        keystone_domain = self.get_item_when_condition_match(
+            'keystone.server.domain', c)
+        if keystone_domain:
+            return True
 
     @property
     def forbid_global_implied_dsr(self):
@@ -42,7 +48,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):
