community.general.keycloak_identity_provider 模块 – 通过 Keycloak API 管理 Keycloak 身份提供程序
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.general
。
要在 playbook 中使用它,请指定: community.general.keycloak_identity_provider
。
community.general 3.6.0 中的新增功能
概要
此模块允许您通过 Keycloak REST API 添加、删除或修改 Keycloak 身份提供程序。它需要通过 OpenID Connect 访问 REST API;连接的用户和使用的客户端必须具有必要的访问权限。在默认的 Keycloak 安装中,admin-cli 和管理员用户都可以工作,单独的客户端定义(其范围根据您的需求进行调整)和具有预期角色的用户也可以工作。
模块选项的名称是 Keycloak API 及其文档中(https://keycloak.java.net.cn/docs-api/15.0/rest-api/index.html)驼峰式命名法的蛇形化版本。
参数
参数 |
注释 |
---|---|
启用/禁用新用户是否可以读取任何存储的令牌。这将分配 选项
|
|
别名唯一地标识身份提供程序,也用于构建重定向 URI。 |
|
用于向 API 进行身份验证的 OpenID Connect 默认值: |
|
与 |
|
Keycloak 实例的 URL。 |
|
用于 API 访问身份验证的密码。 |
|
用于 API 访问身份验证的 Keycloak realm 名称。 |
|
用于 API 访问身份验证的用户名。 |
|
指定此身份提供程序是否应默认用于身份验证,即使在显示登录屏幕之前。 选项
|
|
指定提供程序配置选项的字典;内容取决于 |
|
授权 URL。 |
|
外部 IDP 是否支持后台注销? |
|
客户端身份验证方法。 |
|
在身份提供程序中注册的客户端或客户端标识符。 |
|
在身份提供程序中注册的客户端或客户端密钥。 |
|
请求授权时要发送的范围。 |
|
将用于唯一标识此 SAML 服务提供商的实体 ID。 |
|
定义提供程序在 GUI 中顺序的数字(例如,在登录页面上)。 |
|
如果隐藏,则只有在显式请求时(例如,使用 选项
|
|
响应发布者的颁发者标识符。如果不提供,则不会执行验证。 |
|
存储 JWK 格式身份提供程序密钥的 URL。有关详细信息,请参阅 JWK 规范。 |
|
用于注销外部 IDP 用户的会话结束端点。 |
|
指定与名称标识符格式相对应的 URI 引用。 |
|
识别和跟踪断言中外部用户的方式。 |
|
必须用于发送注销请求的 URL。 |
|
必须用于发送身份验证请求(SAML AuthnRequest)的 URL。 |
|
所有映射器的默认同步模式。同步模式决定何时使用映射器同步用户数据。 |
|
令牌 URL。 |
|
如果开关打开,则身份提供程序公钥将从给定的 JWKS URL 下载。 选项
|
|
用户信息 URL。 |
|
启用/禁用外部 IDP 签名的签名验证。 选项
|
|
控制对 Keycloak API 的 HTTP 连接超时时间(以秒为单位)。 默认值: |
|
身份提供商的友好名称。 |
|
启用/禁用此身份提供商。 选项
|
|
使用此身份提供商首次登录后触发的身份验证流程的别名。 |
|
配置 HTTP User-Agent 头。 默认值: |
|
如果为真,则用户无法通过此提供商登录。他们只能链接到此提供商。如果您不想允许从提供商登录,但又想与提供商集成,这将非常有用。 选项
|
|
定义与此身份提供商关联的映射器的字典列表。 |
|
指定映射器配置选项的字典;其内容取决于 |
|
此映射器的唯一 ID。 |
|
此映射器的身份提供商别名。 |
|
映射器类型。 |
|
映射器的名称。 |
|
使用此身份提供商每次登录后触发的身份验证流程的别名。 |
|
此提供商使用的协议(支持的值为 |
|
此身份提供商所在的 Keycloak 领域。 默认值: |
|
身份提供商的状态。 在 在 选项
|
|
启用/禁用是否必须在身份验证用户后存储令牌。 选项
|
|
Keycloak API 的身份验证令牌。 |
|
如果启用,即使为领域启用了验证,此提供商提供的电子邮件也不会被验证。 选项
|
|
验证 TLS 证书(在生产环境中不要禁用此选项)。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:完全支持 |
在差异模式下,将返回有关已更改内容(或可能需要在 |
示例
- name: Create OIDC identity provider, authentication with credentials
community.general.keycloak_identity_provider:
state: present
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: admin
auth_password: admin
realm: myrealm
alias: oidc-idp
display_name: OpenID Connect IdP
enabled: true
provider_id: oidc
config:
issuer: https://idp.example.com
authorizationUrl: https://idp.example.com/auth
tokenUrl: https://idp.example.com/token
userInfoUrl: https://idp.example.com/userinfo
clientAuthMethod: client_secret_post
clientId: my-client
clientSecret: secret
syncMode: FORCE
mappers:
- name: first_name
identityProviderMapper: oidc-user-attribute-idp-mapper
config:
claim: first_name
user.attribute: first_name
syncMode: INHERIT
- name: last_name
identityProviderMapper: oidc-user-attribute-idp-mapper
config:
claim: last_name
user.attribute: last_name
syncMode: INHERIT
- name: Create SAML identity provider, authentication with credentials
community.general.keycloak_identity_provider:
state: present
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: admin
auth_password: admin
realm: myrealm
alias: saml-idp
display_name: SAML IdP
enabled: true
provider_id: saml
config:
entityId: https://auth.example.com/auth/realms/myrealm
singleSignOnServiceUrl: https://idp.example.com/login
wantAuthnRequestsSigned: true
wantAssertionsSigned: true
mappers:
- name: roles
identityProviderMapper: saml-user-attribute-idp-mapper
config:
user.attribute: roles
attribute.friendly.name: User Roles
attribute.name: roles
syncMode: INHERIT
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
模块执行后身份提供商的表示。 返回值:成功时返回 示例: |
|
现有身份提供商的表示。 返回值:始终返回 示例: |
|
关于采取了什么行动的消息。 返回值:始终返回 示例: |
|
建议的身份提供商的表示。 返回值:始终返回 示例: |