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.com.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
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
| 模块执行后身份提供程序的表示。 返回:成功时 示例: | |
| 现有身份提供程序的表示。 返回:始终返回 示例: | |
| 关于采取了什么行动的消息。 返回:始终返回 示例: | |
| 建议的身份提供程序的表示。 返回:始终返回 示例: | 
