搜索

37.13. 使用 Ansible 确保 IdM 用户可以使用两个证书登录到 IdM 客户端

download PDF

如果您希望一个通常使用密码登录到 IdM 身份管理(IdM)的用户只使用智能卡验证到一个特定的 IdM 客户端,则您可以创建一个 ID 视图,该视图要求对该客户端上的用户进行认证。

完成此流程,以使用 ansible-freeipa idoverrideuser 模块,来:

  • 将 ID 视图应用到名为 idview_for_host01 的 host01。
  • 确保在 idview_for_host01 中,对带有两个证书的 idm_user 的用户 ID 覆盖存在。

先决条件

  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • 您已在 Ansible 控制器上安装了 ansible-freeipa 软件包。
    • 您正在使用 RHEL 9.4 或更高版本。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了 ipaadmin_password
    • 示例假定 cert1.b64cert2.b64 证书位于您要执行 playbook 的同一目录中。
  • idview_for_host01 ID 视图存在。

流程

  1. 在 Ansible 控制节点上,使用以下内容创建一个 ensure-idmuser-present-in-idview-with-certificates.yml playbook:

    ---
    - name: Ensure both local user and IdM user have access to same files
      hosts: ipaserver
      become: false
      gather_facts: false
    
      tasks:
      - name: Ensure idview_for_host1 is applied to host01.idm.example.com
        ipaidview:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: idview_for_host01
          host: host01.idm.example.com
    
      - name: Ensure an IdM user is present in ID view with two certificates
        ipaidoverrideuser:
          ipaadmin_password: "{{ ipaadmin_password }}"
          idview: idview_for_host01
          anchor: idm_user
          certificate:
          - "{{ lookup('file', 'cert1.b64', rstrip=False) }}"
          - "{{ lookup('file', 'cert2.b64', rstrip=False) }}"

    rstrip=False 指令空格导致没有从查找文件的末尾删除。

  2. 保存该文件。
  3. 运行 playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory ensure-idmuser-present-in-idview-with-certificates.yml

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.