community.general.keycloak_authentication 模块 – 在 Keycloak 中配置身份验证

注意

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

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

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

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

community.general 3.3.0 中的新增功能

概要

  • 此模块实际上只能复制现有的身份验证流程,向其中添加执行并对其进行配置。

  • 它还可以删除流程。

参数

参数

注释

alias

字符串 / 必需

身份验证流程的别名。

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 访问身份验证的用户名。

authenticationExecutions

列表 / 元素=字典

执行的配置结构。

authenticationConfig

字典

描述身份验证的配置。

displayName

字符串

要创建或更新的执行或子流程的名称。

flowAlias

字符串

父流程的别名。

index

整数

执行的优先级顺序。

providerId

字符串

当不从现有流程复制时,新流程的 providerID

requirement

字符串

控制子流程或执行的状态。

选项

  • "REQUIRED"

  • "ALTERNATIVE"

  • "DISABLED"

  • "CONDITIONAL"

subFlowType

字符串

在 community.general 6.6.0 中添加

对于新的子流程,可以选择指定类型。

仅在创建时使用。

选项

  • "basic-flow" ← (默认)

  • "form-flow"

connection_timeout

整数

在 community.general 4.5.0 中添加

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

默认值: 10

copyFrom

字符串

要用于复制的身份验证流程的 flowAlias

description

字符串

流程的描述。

force

布尔值

如果 true,则允许删除身份验证流程并重新创建它。

选项

  • false ← (默认)

  • true

http_agent

字符串

在 community.general 5.4.0 中添加

配置 HTTP User-Agent 标头。

默认值: "Ansible"

providerId

字符串

当不从现有流程复制时,新流程的 providerId

选项

  • "basic-flow"

  • "client-flow"

realm

字符串 / 必需

包含身份验证的 realm 的名称。

state

字符串

控制身份验证流程是否必须存在。

选项

  • "present" ← (默认)

  • "absent"

token

字符串

在 community.general 3.0.0 中添加

Keycloak API 的身份验证令牌。

validate_certs

布尔值

验证 TLS 证书(生产环境中请勿禁用此选项)。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全支持

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

diff_mode

支持:完全支持

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

示例

- name: Create an authentication flow from first broker login and add an execution to it.
  community.general.keycloak_authentication:
    auth_keycloak_url: https://127.0.0.1:8080/auth
    auth_realm: master
    auth_username: admin
    auth_password: password
    realm: master
    alias: "Copy of first broker login"
    copyFrom: "first broker login"
    authenticationExecutions:
      - providerId: "test-execution1"
        requirement: "REQUIRED"
        authenticationConfig:
            alias: "test.execution1.property"
            config:
            test1.property: "value"
      - providerId: "test-execution2"
        requirement: "REQUIRED"
        authenticationConfig:
            alias: "test.execution2.property"
            config:
            test2.property: "value"
    state: present

- name: Re-create the authentication flow
  community.general.keycloak_authentication:
    auth_keycloak_url: https://127.0.0.1:8080/auth
    auth_realm: master
    auth_username: admin
    auth_password: password
    realm: master
    alias: "Copy of first broker login"
    copyFrom: "first broker login"
    authenticationExecutions:
      - providerId: "test-provisioning"
        requirement: "REQUIRED"
        authenticationConfig:
            alias: "test.provisioning.property"
            config:
            test.provisioning.property: "value"
    state: present
    force: true

- name: Create an authentication flow with subflow containing an execution.
  community.general.keycloak_authentication:
    auth_keycloak_url: https://127.0.0.1:8080/auth
    auth_realm: master
    auth_username: admin
    auth_password: password
    realm: master
    alias: "Copy of first broker login"
    copyFrom: "first broker login"
    authenticationExecutions:
      - providerId: "test-execution1"
        requirement: "REQUIRED"
      - displayName: "New Subflow"
        requirement: "REQUIRED"
      - providerId: "auth-cookie"
        requirement: "REQUIRED"
        flowAlias: "New Sublow"
    state: present

- name: Remove authentication.
  community.general.keycloak_authentication:
    auth_keycloak_url: https://127.0.0.1:8080/auth
    auth_realm: master
    auth_username: admin
    auth_password: password
    realm: master
    alias: "Copy of first broker login"
    state: absent

返回值

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

描述

end_state

字典

模块执行后身份验证的表示。

返回值:成功时返回

示例:{"alias": "Copy of first broker login", "authenticationExecutions": [{"alias": "review profile config", "authenticationConfig": {"alias": "review profile config", "config": {"update.profile.on.first.login": "missing"}, "id": "6f09e4fb-aad4-496a-b873-7fa9779df6d7"}, "configurable": true, "displayName": "Review Profile", "id": "8f77dab8-2008-416f-989e-88b09ccf0b4c", "index": 0, "level": 0, "providerId": "idp-review-profile", "requirement": "REQUIRED", "requirementChoices": ["REQUIRED", "ALTERNATIVE", "DISABLED"]}], "builtIn": false, "description": "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account", "id": "bc228863-5887-4297-b898-4d988f8eaa5c", "providerId": "basic-flow", "topLevel": true}

msg

字符串

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

返回值:始终返回

作者

  • Philippe Gauthier (@elfelip)

  • Gaëtan Daubresse (@Gaetan2907)