51.4. Ansible を使用して AD ユーザーが IdM を管理できるようにする
ansible-freeipa の idoverrideuser および group モジュールを使用して、信頼済み AD ドメインの Active Directory (AD) ユーザーのユーザー ID オーバーライドを作成し、そのユーザーに IdM ユーザーと同じ権限を付与することができます。この手順で使用する例では、最初の Playbook タスクで Default Trust View ID ビューに ad_user@AD.EXAMPLE.COM ID オーバーライドを追加します。次の Playbook タスクで、ad_user@AD.EXAMPLE.COM ID オーバーライドを IdM admins グループにメンバーとして追加します。その結果、AD 管理者が 2 つの異なるアカウントとパスワードを使用しなくても IdM を管理できるようになります。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
インベントリーファイル内の
ipaserverホストが、信頼コントローラーまたは信頼エージェントとして設定されている。 -
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
Ansible コントロールノードで、ad_user@ad.example.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 ad_user@ad.example.com in 'Default Trust View' ipaidoverrideuser: ipaadmin_password: "{{ ipaadmin_password }}" idview: "Default Trust View" anchor: ad_user@ad.example.com上記の例では、以下のようになります。
- ad_user@ad.example.com は、信頼が確立されている AD ドメインに保存されている AD ユーザーのユーザー ID オーバーライドです。
同じ Playbook 内の別の Playbook タスクを使用して、AD 管理者ユーザー ID オーバーライドを
adminsグループに追加します。- name: Add the AD administrator as a member of admins ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: admins idoverrideuser: - ad_user@ad.example.com上記の例では、以下のようになります。
-
adminsは、ad_user@ad.example.com ID オーバーライドを追加するデフォルトの IdM POSIX グループの名前です。このグループのメンバーには、完全な管理者権限があります。
-
- ファイルを保存します。
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 ad_user@ad.example.com@client.idm.example.com有効な Ticket-Granting Ticket (TGT) を取得したことを確認します。
$ klist Ticket cache: KCM:325600500:99540 Default principal: ad_user@AD.EXAMPLE.COM Valid starting Expires Service principal 02/04/2024 11:54:16 02/04/2024 21:54:16 krbtgt/AD.EXAMPLE.COM@AD.EXAMPLE.COM renew until 02/05/2024 11:54:16IdM の
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 [...]