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) 中的 camelCase 名称的 snake_case 版本。
参数
参数 |
注释 |
---|---|
启用/禁用新用户是否可以读取任何存储的令牌。这将分配 选项
|
|
别名唯一标识身份提供程序,也用于构建重定向 URI。 |
|
用于使用 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 标头。 默认值: |
|
如果为 true,则用户无法通过此提供程序登录。他们只能链接到此提供程序。如果您不想允许从提供程序登录,但想与提供程序集成,这将非常有用。 选项
|
|
定义与此身份提供程序关联的映射器的字典列表。 |
|
指定映射器配置选项的字典;内容取决于 |
|
此映射器的唯一 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
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
模块执行后身份提供程序的表示。 返回:成功时 示例: |
|
现有身份提供程序的表示。 返回:始终返回 示例: |
|
关于采取了什么行动的消息。 返回:始终返回 示例: |
|
建议的身份提供程序的表示。 返回:始终返回 示例: |