community.general.keycloak_realm 模块 – 通过 Keycloak API 管理 Keycloak 领域

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.general

要在剧本中使用它,请指定: community.general.keycloak_realm

community.general 3.0.0 中的新增功能

概要

  • 此模块允许通过 Keycloak REST API 管理 Keycloak 领域。它需要通过 OpenID Connect 访问 REST API;连接的用户和正在使用的领域必须具有必要的访问权限。在默认的 Keycloak 安装中,admin-cli 和管理员用户都可以工作,一个具有根据您的需求定制的范围的单独领域定义以及具有预期角色的用户也可以工作。

  • 模块选项的名称是 Keycloak API 及其文档中找到的 camelCase 版本的 snake_case 版本,网址为 https://keycloak.java.net.cn/docs-api/8.0/rest-api/index.html。提供了别名,以便可以使用 camelCased 版本。

  • Keycloak API 并不总是检查输入的有效性,例如,您可以例如在 OpenID Connect 客户端上设置 SAML 特定的设置,反之亦然。小心。如果您没有指定设置,通常会选择合理的默认值。

参数

参数

注释

access_code_lifespan

别名:accessCodeLifespan

整数

领域的访问码生命周期。

access_code_lifespan_login

别名:accessCodeLifespanLogin

整数

领域的访问码登录生命周期。

access_code_lifespan_user_action

别名:accessCodeLifespanUserAction

整数

领域的访问码用户操作生命周期。

access_token_lifespan

别名:accessTokenLifespan

整数

领域的访问令牌生命周期。

access_token_lifespan_for_implicit_flow

别名:accessTokenLifespanForImplicitFlow

整数

领域的隐式流访问令牌生命周期。

account_theme

别名:accountTheme

字符串

领域的帐户主题。

action_token_generated_by_admin_lifespan

别名:actionTokenGeneratedByAdminLifespan

整数

由管理员生成的领域操作令牌生命周期。

action_token_generated_by_user_lifespan

别名:actionTokenGeneratedByUserLifespan

整数

由用户生成的领域操作令牌生命周期。

admin_events_details_enabled

别名:adminEventsDetailsEnabled

布尔值

领域管理员事件详细信息是否启用。

选项

  • false

  • true

admin_events_enabled

别名:adminEventsEnabled

布尔值

领域管理员事件是否启用。

选项

  • false

  • true

admin_theme

别名:adminTheme

字符串

领域的管理员主题。

属性

字典

领域的属性。

auth_client_id

字符串

用于通过 API 进行身份验证的 OpenID Connect client_id

默认值: "admin-cli"

auth_client_secret

字符串

auth_client_id (如果需要) 一起使用的客户端密钥。

auth_keycloak_url

别名:url

字符串 / 必需

Keycloak 实例的 URL。

auth_password

别名:password

字符串

用于 API 访问身份验证的密码。

auth_realm

字符串

用于 API 访问身份验证的 Keycloak 领域名称。

auth_username

别名:username

字符串

用于 API 访问身份验证的用户名。

browser_flow

别名:browserFlow

字符串

领域的浏览器流程。

browser_security_headers

别名: browserSecurityHeaders

字典

浏览器安全报头区域。

brute_force_protected

别名: bruteForceProtected

布尔值

区域暴力破解保护。

选项

  • false

  • true

client_authentication_flow

别名: clientAuthenticationFlow

字符串

区域客户端身份验证流程。

client_scope_mappings

别名: clientScopeMappings

字典

区域客户端作用域映射。

connection_timeout

整数

community.general 4.5.0 版本中添加

控制与 Keycloak API 的 HTTP 连接超时时间(以秒为单位)。

默认值: 10

default_default_client_scopes

别名: defaultDefaultClientScopes

列表 / 元素=字符串

区域默认的默认客户端作用域。

default_groups

别名: defaultGroups

列表 / 元素=字符串

区域默认组。

default_locale

别名: defaultLocale

字符串

区域默认语言环境。

default_optional_client_scopes

别名: defaultOptionalClientScopes

列表 / 元素=字符串

区域默认可选客户端作用域。

default_roles

别名: defaultRoles

列表 / 元素=字符串

区域默认角色。

default_signature_algorithm

别名: defaultSignatureAlgorithm

字符串

区域默认签名算法。

direct_grant_flow

别名: directGrantFlow

字符串

区域直接授权流程。

display_name

别名: displayName

字符串

区域显示名称。

display_name_html

别名: displayNameHtml

字符串

区域显示名称 HTML。

docker_authentication_flow

别名: dockerAuthenticationFlow

字符串

区域 Docker 身份验证流程。

duplicate_emails_allowed

别名: duplicateEmailsAllowed

布尔值

区域允许重复邮箱选项。

选项

  • false

  • true

edit_username_allowed

别名: editUsernameAllowed

布尔值

区域允许编辑用户名选项。

选项

  • false

  • true

email_theme

别名: emailTheme

字符串

区域邮箱主题。

enabled

布尔值

区域启用选项。

选项

  • false

  • true

enabled_event_types

别名: enabledEventTypes

列表 / 元素=字符串

区域启用的事件类型。

events_enabled

别名: eventsEnabled

布尔值

community.general 3.6.0 版本中添加

启用或禁用此区域的登录事件。

选项

  • false

  • true

events_expiration

别名: eventsExpiration

整数

区域事件过期时间。

events_listeners

别名: eventsListeners

列表 / 元素=字符串

区域事件监听器。

failure_factor

别名: failureFactor

整数

区域失败因子。

http_agent

字符串

community.general 5.4.0 版本中添加

配置 HTTP User-Agent 头。

默认值: "Ansible"

id

字符串

要创建的区域。

internationalization_enabled

别名: internationalizationEnabled

布尔值

区域国际化启用选项。

选项

  • false

  • true

login_theme

别名: loginTheme

字符串

区域登录主题。

login_with_email_allowed

别名: loginWithEmailAllowed

布尔值

区域允许使用邮箱登录选项。

选项

  • false

  • true

max_delta_time_seconds

别名: maxDeltaTimeSeconds

整数

区域最大时间差(以秒为单位)。

max_failure_wait_seconds

别名: maxFailureWaitSeconds

整数

区域最大失败等待时间(以秒为单位)。

minimum_quick_login_wait_seconds

别名: minimumQuickLoginWaitSeconds

整数

区域最小快速登录等待时间(以秒为单位)。

not_before

别名: notBefore

整数

区域生效时间。

offline_session_idle_timeout

别名: offlineSessionIdleTimeout

整数

区域离线会话空闲超时时间。

offline_session_max_lifespan

别名: offlineSessionMaxLifespan

整数

区域离线会话最大生命周期。

offline_session_max_lifespan_enabled

别名: offlineSessionMaxLifespanEnabled

布尔值

区域离线会话最大生命周期启用选项。

选项

  • false

  • true

organizations_enabled

别名: organizationsEnabled

布尔值

community.general 10.0.0 版本中添加

启用对实验性组织功能的支持。

选项

  • false

  • true

otp_policy_algorithm

别名: otpPolicyAlgorithm

字符串

区域 OTP 策略算法。

otp_policy_digits

别名: otpPolicyDigits

整数

区域 OTP 策略位数。

otp_policy_initial_counter

别名: otpPolicyInitialCounter

整数

区域 OTP 策略初始计数器。

otp_policy_look_ahead_window

别名: otpPolicyLookAheadWindow

整数

区域 OTP 策略前瞻窗口。

otp_policy_period

别名: otpPolicyPeriod

整数

区域 OTP 策略周期。

otp_policy_type

别名: otpPolicyType

字符串

区域 OTP 策略类型。

otp_supported_applications

别名: otpSupportedApplications

列表 / 元素=字符串

区域支持 OTP 的应用程序。

password_policy

别名: passwordPolicy

字符串

区域密码策略。

permanent_lockout

别名: permanentLockout

布尔值

区域永久锁定。

选项

  • false

  • true

quick_login_check_milli_seconds

别名: quickLoginCheckMilliSeconds

整数

区域快速登录检查时间(以毫秒为单位)。

realm

字符串

区域名称。

refresh_token_max_reuse

别名: refreshTokenMaxReuse

整数

区域刷新令牌最大重用次数。

registration_allowed

别名: registrationAllowed

布尔值

区域允许注册选项。

选项

  • false

  • true

registration_email_as_username

别名: registrationEmailAsUsername

布尔值

区域使用邮箱作为用户名注册选项。

选项

  • false

  • true

registration_flow

别名: registrationFlow

字符串

区域注册流程。

remember_me

别名: rememberMe

布尔值

区域记住我选项。

选项

  • false

  • true

reset_credentials_flow

别名: resetCredentialsFlow

字符串

区域重置凭据流程。

reset_password_allowed

别名: resetPasswordAllowed

布尔值

区域允许重置密码选项。

选项

  • false

  • true

revoke_refresh_token

别名: revokeRefreshToken

布尔值

区域撤销刷新令牌选项。

选项

  • false

  • true

smtp_server

别名: smtpServer

字典

区域 SMTP 服务器。

ssl_required

别名: sslRequired

字符串

区域 SSL 要求选项。

选项

  • "all"

  • "external"

  • "none"

sso_session_idle_timeout

别名: ssoSessionIdleTimeout

整数

区域 SSO 会话空闲超时时间。

sso_session_idle_timeout_remember_me

别名: ssoSessionIdleTimeoutRememberMe

整数

区域记住我状态下的 SSO 会话空闲超时时间。

sso_session_max_lifespan

别名: ssoSessionMaxLifespan

整数

区域 SSO 会话最大生命周期。

sso_session_max_lifespan_remember_me

别名: ssoSessionMaxLifespanRememberMe

整数

区域记住我状态下的 SSO 会话最大生命周期。

state

字符串

区域状态。

present 状态下,将创建区域(如果已存在则更新)。

absent 状态下,如果区域存在则将其删除。

选项

  • "present" ← (默认)

  • "absent"

supported_locales

别名: supportedLocales

列表 / 元素=字符串

区域支持的语言环境。

token

字符串

community.general 3.0.0 版本中添加

Keycloak API 的身份验证令牌。

user_managed_access_allowed

别名: userManagedAccessAllowed

布尔值

区域允许用户管理访问选项。

选项

  • false

  • true

validate_certs

布尔值

验证 TLS 证书(在生产环境中不要禁用此选项)。

选项

  • false

  • true ← (默认)

verify_email

别名: verifyEmail

布尔值

区域验证邮箱选项。

选项

  • false

  • true

wait_increment_seconds

别名: waitIncrementSeconds

整数

区域等待增量时间(以秒为单位)。

属性

属性

支持

描述

check_mode

支持: 完全支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持: 完全支持

在差异模式下,将返回有关更改内容(或在 check_mode 下可能需要更改的内容)的详细信息。

示例

- name: Create or update Keycloak realm (minimal example)
  community.general.keycloak_realm:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    id: realm
    realm: realm
    state: present

- name: Delete a Keycloak realm
  community.general.keycloak_realm:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    id: test
    state: absent

返回值

常见的返回值已在此处记录,以下是此模块特有的字段

描述

end_state

字典

模块执行后领域表示(示例已截断)。

返回:成功时

示例: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}}

现有

字典

现有领域的表示(示例已截断)。

返回:始终

示例: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}}

消息

字符串

关于采取了什么操作的消息。

返回:始终

示例: "Realm testrealm has been updated"

建议

字典

建议领域的表示。

返回:始终

示例: {"id": "test"}

作者

  • Christophe Gilles (@kris2kris)