Red Hat Training

A Red Hat training course is available for RHEL 8

87.5. Ansible を使用して AD ユーザーが IdM を管理できるようにする

ansible-freeipaidoverrideuser および group モジュールを使用して、信頼済み AD ドメインの Active Directory (AD) ユーザーのユーザー ID オーバーライドを作成し、そのユーザーに IdM ユーザーと同じ権限を付与することができます。この手順で使用する例では、最初の Playbook タスクで Default Trust View ID ビューに administrator@addomain.com ID オーバーライドを追加します。次の Playbook タスクで、administrator@addomain.com ID オーバーライドを IdM admins グループにメンバーとして追加します。その結果、AD 管理者が 2 つの異なるアカウントとパスワードを使用しなくても IdM を管理できるようになります。

前提条件

  • 次の要件を満たすように Ansible コントロールノードを設定している。

    • Ansible バージョン 2.14 以降を使用している。
    • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。
    • RHEL 9.4 以降を使用している。
    • この例では、~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成したことを前提としている。
    • この例では、secret.yml Ansible vault に ipaadmin_password が保存されていることを前提としています。
  • AD フォレストが IdM と信頼関係にある。この例では、AD ドメインの名前は addomain.com であり、AD 管理者の完全修飾ドメイン名 (FQDN) は administrator@addomain.com です。
  • インベントリーファイル内の ipaserver ホストが、信頼コントローラーまたは信頼エージェントとして設定されている。
  • ターゲットノード (ansible-freeipa モジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。

手順

  1. Ansible コントロールノードで、administrator@addomain.com ユーザーオーバーライドを Default Trust View に追加するタスクを含む enable-ad-admin-to-administer-idm.yml Playbook を作成します。

    ---
    - name: Enable AD administrator to act as a FreeIPA admin
      hosts: ipaserver
      become: false
      gather_facts: false
    
      tasks:
      - name: Ensure idoverride for administrator@addomain.com in 'default trust view'
        ipaidoverrideuser:
          ipaadmin_password: "{{ ipaadmin_password }}"
          idview: "Default Trust View"
          anchor: administrator@addomain.com
  2. 同じ Playbook 内の別の Playbook タスクを使用して、AD 管理者ユーザー ID オーバーライドを admins グループに追加します。

      - name: Add the AD administrator as a member of admins
        ipagroup:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: admins
          idoverrideuser:
          - administrator@addomain.com
  3. ファイルを保存します。
  4. Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。

    $ ansible-playbook --vault-password-file=password_file -v -i inventory enable-ad-admin-to-administer-idm.yml

検証

  1. AD 管理者として IdM クライアントにログインします。

    $ ssh administrator@addomain.com@client.idm.example.com
  2. 有効な Ticket-Granting Ticket (TGT) を取得したことを確認します。

    $ klist
    Ticket cache: KCM:325600500:99540
    Default principal: Administrator@ADDOMAIN.COM
    Valid starting Expires Service principal
    02/04/2024 11:54:16 02/04/2024 21:54:16 krbtgt/ADDOMAIN.COM@ADDOMAIN.COM
    renew until 02/05/2024 11:54:16
  3. IdM の admin 権限を確認します。

    $ ipa user-add testuser --first=test --last=user
    ------------------------
    Added user "tuser"
    ------------------------
      User login: tuser
      First name: test
      Last name: user
      Full name: test user
    [...]

関連情報