87.5. Ansible を使用して AD ユーザーが IdM を管理できるようにする
ansible-freeipa
の idoverrideuser
および 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 ドメインに含まれている。
手順
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
同じ 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- ファイルを保存します。
Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory enable-ad-admin-to-administer-idm.yml
検証
AD 管理者として IdM クライアントにログインします。
$ ssh administrator@addomain.com@client.idm.example.com
有効な 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
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 [...]
関連情報
-
idoverrideuser および ipagroup に関する
ansible-freeipa
アップストリームドキュメント - IdM を管理する AD ユーザーの有効化