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

注意

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

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

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

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

community.general 3.0.0 中的新增功能

概要

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

  • 模块选项的名称是 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

整数

Realm 访问码生命周期。

access_code_lifespan_login

别名:accessCodeLifespanLogin

整数

Realm 访问码登录生命周期。

access_code_lifespan_user_action

别名:accessCodeLifespanUserAction

整数

Realm 访问码用户操作生命周期。

access_token_lifespan

别名:accessTokenLifespan

整数

Realm 访问令牌生命周期。

access_token_lifespan_for_implicit_flow

别名:accessTokenLifespanForImplicitFlow

整数

Realm 隐式流访问令牌生命周期。

account_theme

别名:accountTheme

字符串

Realm 帐户主题。

action_token_generated_by_admin_lifespan

别名:actionTokenGeneratedByAdminLifespan

整数

Realm 由管理员生成的 Action 令牌生命周期。

action_token_generated_by_user_lifespan

别名:actionTokenGeneratedByUserLifespan

整数

Realm 由用户生成的 Action 令牌生命周期。

admin_events_details_enabled

别名:adminEventsDetailsEnabled

布尔值

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

选项

  • false

  • true

admin_events_enabled

别名:adminEventsEnabled

布尔值

Realm 管理员事件是否启用。

选项

  • false

  • true

admin_theme

别名:adminTheme

字符串

Realm 管理员主题。

属性

字典

Realm 属性。

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 Realm 名称。

auth_username

别名:username

字符串

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

browser_flow

别名:browserFlow

字符串

Realm 浏览器流程。

browser_security_headers

别名:browserSecurityHeaders

字典

Realm 浏览器安全标头。

brute_force_protected

别名:bruteForceProtected

布尔值

Realm 是否受暴力破解保护。

选项

  • false

  • true

client_authentication_flow

别名:clientAuthenticationFlow

字符串

Realm 客户端身份验证流程。

client_scope_mappings

别名:clientScopeMappings

字典

Realm 客户端作用域映射。

connection_timeout

整数

community.general 4.5.0 中新增

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

默认值: 10

default_default_client_scopes

别名:defaultDefaultClientScopes

列表 / 元素=字符串

Realm 默认默认客户端作用域。

default_groups

别名:defaultGroups

列表 / 元素=字符串

Realm 默认组。

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)