20.3. Ansible を使用して IdM のシステムアカウントを設定し、ユーザーパスワードを変更する


Ansible を使用して、適切な特権とロールを持つ Identity Management (IdM) システムアカウントを設定し、外部の認証情報管理システムが初回ログイン時にパスワードのリセットを必要とせずにユーザーパスワードを設定できるようにします。

以下の例では、ansible-freeipa パッケージのモジュールを使用して、次のものを作成します。

  • my- アプリケーション という名前のシステムアカウント。
  • my- アプリケーション password change 特権 という名前の特権に 、System: Change User password の 権限を付与します。
  • システムアカウントに特権を付与する my- アプリケーション role という名前のロール。

必要に応じて、システムアカウントが設定したパスワードが初回ログイン時に期限切れにならないように設定できます。

前提条件

  • あなたは、システムアカウント管理者 特権を持つロール (例: admin) を使用しています。
  • 次の要件を満たすように Ansible コントロールノードを設定した。

    • Ansible バージョン 2.14 以降を使用している。
    • ansible-freeipa パッケージがインストールされました。
    • この例では、~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を含む Ansible インベントリーファイル が作成されていることを前提としています。
    • この例では、secret.yml Ansible vault に ipaadmin_password が保存されていること、および secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできることを前提としています。
  • ターゲットノード (ansible-freeipa モジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。

手順

  1. ~/MyPlaybooks/ ディレクトリーに移動します。

    $ cd ~/MyPlaybooks/
  2. 以下の内容で configure-system-account-to-change-user-passwords.yml という Playbook を作成します。

    ---
    - name: Configure a system account in IdM to change user passwords without requiring a reset
      hosts: ipaserver
      become: false
      gather_facts: false
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      - name: Ensure sysaccount my-app is present with a random password
        ipasysaccount:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: my-app
          random: true
        register: sysaccount_result
    
      - name: Print the generated random password
        ansible.builtin.debug:
          var: sysaccount_result.sysaccount.randompassword
    
      - name: Ensure privilege my-app password change privilege is present with the password change permission
        ipaprivilege:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: my-app password change privilege
          permission:
          - "System: Change User password"
    
      - name: Ensure role my-app role is present with the privilege and system account as member
        iparole:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: my-app role
          privilege:
          - my-app password change privilege
          sysaccount:
          - my-app
    
      - name: Ensure sysaccount my-app can change passwords without requiring a reset
        ipasysaccount:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: my-app
          privileged: true
  3. ファイルを保存します。

    FreeIPA Ansible コレクションの変数とサンプル Playbook の詳細は、コントロールノード上の /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-sysaccount.md および /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-role.md ファイルを参照してください。

  4. Playbook を実行します。

    $ ansible-playbook --vault-password-file=password_file -v -i inventory configure-system-account-to-change-user-passwords.yml

検証

  1. システムアカウントが存在し、特権アカウントとして設定されていることを確認してください。

    $ ipa sysaccount-show my-app
      System account login: my-app
      Privileged: True
  2. ロールに適切な特権とシステムアカウントメンバーが付与されていることを確認してください。

    $ ipa role-show 'my-app role'
      Role name: my-app role
      Privileges: my-app password change privilege
      System accounts: my-app
  3. 外部の認証情報管理システムを使用して、IdM ユーザーのパスワードを変更します。
  4. IdM ユーザーとして IdM にログインしてください。

    $ kinit idmuser
  5. プロンプトが表示されたら、新しいパスワードを入力します。

    idmuser's password:
  6. idmuser の KerberosTicket-Granting Ticket を所有していることを確認してください。

    $ klist
    Credentials cache: API:0A481BBD-C3AA-473D-B43A-42CD19C7F045
            Principal: idmuser@IDM.EXAMPLE.COM
    
      Issued                Expires               Principal
    Feb 23 16:06:56 2026  Feb 24 02:04:54 2026  krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM

    この出力は、有効な Kerberos チケットを所有していることを示しています。idmuser のパスワードをリセットすることなくログインできました。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る