Red Hat Training

A Red Hat training course is available for RHEL 8

114.3. 使用 Ansible 创建对外部身份提供程序的引用

要将外部身份提供程序(IdP)连接到您的身份管理(IdM)环境,请在 IdM 中创建 IdP 参考。完成此流程,使用 idp ansible-freeipa 模块配置对 github 外部 IdP 的引用。

先决条件

  • 您已将 IdM 作为 OAuth 应用程序注册到外部 IdP,并在 IdM 用户要使用的设备中生成客户端 ID 和客户端 secret,以向 IdM 进行身份验证。示例假定:

    • my_github_account_name 是 github 用户,其将 IdM 用户用于向 IdM 进行身份验证的帐户。
    • 客户端 ID2efe1acffe9e8ab869f4
    • 客户端 secret656a5228abc5f9545c85fa626aecbf69312d398c
  • 您的 IdM 服务器使用 RHEL 8.7 或更高版本。
  • 您的 IdM 服务器使用 SSSD 2.7.0 或更高版本。
  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • 您已在 Ansible 控制器上安装了 ansible-freeipa 软件包。
    • 您使用 RHEL 8.10 或更高版本。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible 库存储了 ipaadmin_password

流程

  1. 在 Ansible 控制节点上,创建一个 configure-external-idp-reference.yml playbook:

    ---
    - name: Configure external IdP
      hosts: ipaserver
      become: false
      gather_facts: false
    
      tasks:
      - name: Ensure a reference to github external provider is available
        ipaidp:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: github_idp
          provider: github
          client_ID: 2efe1acffe9e8ab869f4
          secret: 656a5228abc5f9545c85fa626aecbf69312d398c
          idp_user_id: my_github_account_name
  2. 保存该文件。
  3. 运行 Ansible playbook。指定 playbook 文件、存储密码的文件保护 secret.yml 文件以及清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory configure-external-idp-reference.yml

验证

  • 在 IdM 客户端上,验证 ipa idp-show 命令的输出显示您创建的 IdP 引用。

    [idmuser@idmclient ~]$ ipa idp-show github_idp

其它资源

  • idp ansible-freeipa 上游文档