diff --git a/changelogs/fragments/10415-keycloak-realm-brute-force-attributes.yml b/changelogs/fragments/10415-keycloak-realm-brute-force-attributes.yml new file mode 100644 index 0000000000..22433b584e --- /dev/null +++ b/changelogs/fragments/10415-keycloak-realm-brute-force-attributes.yml @@ -0,0 +1,2 @@ +minor_changes: + - keycloak_realm - add support for ``brute_force_strategy`` and ``max_temporary_lockouts`` (https://github.com/ansible-collections/community.general/issues/10412, https://github.com/ansible-collections/community.general/pull/10415). diff --git a/plugins/modules/keycloak_realm.py b/plugins/modules/keycloak_realm.py index c8bc7dc7df..68f03521d7 100644 --- a/plugins/modules/keycloak_realm.py +++ b/plugins/modules/keycloak_realm.py @@ -141,6 +141,14 @@ options: aliases: - bruteForceProtected type: bool + brute_force_strategy: + description: + - The realm brute force strategy. + aliases: + - bruteForceStrategy + choices: ['LINEAR', 'MULTIPLE'] + type: str + version_added: 11.2.0 client_authentication_flow: description: - The realm client authentication flow. @@ -302,6 +310,13 @@ options: aliases: - maxFailureWaitSeconds type: int + max_temporary_lockouts: + description: + - The realm max temporary lockouts. + aliases: + - maxTemporaryLockouts + type: int + version_added: 11.2.0 minimum_quick_login_wait_seconds: description: - The realm minimum quick login wait in seconds. @@ -650,6 +665,7 @@ def main(): browser_flow=dict(type='str', aliases=['browserFlow']), browser_security_headers=dict(type='dict', aliases=['browserSecurityHeaders']), brute_force_protected=dict(type='bool', aliases=['bruteForceProtected']), + brute_force_strategy=dict(type='str', choices=['LINEAR', 'MULTIPLE'], aliases=['bruteForceStrategy']), client_authentication_flow=dict(type='str', aliases=['clientAuthenticationFlow']), client_scope_mappings=dict(type='dict', aliases=['clientScopeMappings']), default_default_client_scopes=dict(type='list', elements='str', aliases=['defaultDefaultClientScopes']), @@ -676,6 +692,7 @@ def main(): login_with_email_allowed=dict(type='bool', aliases=['loginWithEmailAllowed']), max_delta_time_seconds=dict(type='int', aliases=['maxDeltaTimeSeconds']), max_failure_wait_seconds=dict(type='int', aliases=['maxFailureWaitSeconds']), + max_temporary_lockouts=dict(type='int', aliases=['maxTemporaryLockouts']), minimum_quick_login_wait_seconds=dict(type='int', aliases=['minimumQuickLoginWaitSeconds']), not_before=dict(type='int', aliases=['notBefore']), offline_session_idle_timeout=dict(type='int', aliases=['offlineSessionIdleTimeout']),