Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for RHEL 8

33.8.4. Ansible を使用した信頼関係の設定

本セクションでは、Ansible Playbook を使用して、Identity Management (IdM) と Active Directory (AD) との間で一方向の信頼関係を設定する方法を説明します。3 種類の信頼関係を設定できます。

  • 一方向の信頼 — デフォルトのオプション。一方向の信頼により、Active Directory (AD) ユーザーおよびグループは IdM のリソースにアクセスできますが、その逆はできません。IdM ドメインは AD フォレストを信頼しますが、AD フォレストは IdM ドメインを信頼しません。
  • 双方向の信頼 — 双方向の信頼により、AD ユーザーおよびグループが IdM のリソースにアクセスできるようになります。

    信頼境界を使用して Kerberos プロトコルに S4U2Self および S4U2Proxy の Microsoft 拡張を必要とする、Microsoft SQL Server などのソリューションに、双方向の信頼を設定する必要があります。RHEL IdM ホスト上にあるアプリケーションは、AD ユーザーに関する S4U2Self または S4U2Proxy の情報を Active Directory ドメインコントローラーから要求する場合があり、双方向の信頼でこの機能が提供されます。

    この双方向の信頼機能では、IdM ユーザーは Windows システムにログインできないだけでなく、IdM の双方向信頼では、AD の一方向信頼ソリューションと比較して、権限が追加でユーザーに付与されるわけではありません。

    • 双方向の信頼を作成するには、two_way: true の変数を Playbook タスクに追加します。
  • 外部信頼: 異なるフォレストの IdM と AD ドメインとの間の信頼関係です。フォレストの信頼では常に IdM と Active Directory フォレストのルートドメインとの間で信頼関係を確立する必要がありますが、IdM からフォレスト内の任意のドメインへの外部の信頼関係も確立できます。管理上または組織上の理由で、フォレストの root ドメイン間でフォレストの信頼を確立できない場合に限り、これが推奨されます。

    • 外部信頼を作成するには、以下の変数を external: trueの Playbook タスクに追加します。

前提条件

  • Windows 管理者のユーザー名およびパスワード
  • IdM admin パスワード。
  • 信頼用の IdM サーバーの準備ができている
  • IdM 4.8.7 バージョン以降の IdM を使用している。サーバーにインストールされている IdM のバージョンを表示するには、ipa --version を実行します。
  • 以下の要件を満たす Ansible コントロールノードを設定している。

    • Ansible バージョン 2.8 以降を使用している。
    • ansible-freeipa パッケージがインストールされている。
    • ~/MyPlaybooks/ ディレクトリーに、このトラストを設定する IdM サーバーの完全修飾ドメイン名 (FQDN) で Ansible インベントリーファイル を作成している。

手順

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

    $ cd ~/MyPlaybooks/
  2. ユースケースに基づいて、以下のいずれかのシナリオを選択します。

    • SSSD が SID に基づいて AD ユーザーおよびグループの UID および GID を自動的に生成する ID マッピング信頼合意を作成するには、以下の内容で add-trust.yml Playbook を作成します。

      ---
      - name: Playbook to create a trust
        hosts: ipaserver
        become: true
      
        tasks:
          - name: ensure the trust is present
            ipatrust:
              ipaadmin_password: SomeADMINpassword
              realm: ad.example.com
              admin: Administrator
              password: secret_password
              range_type: ipa-ad-trust
              state: present

      この例では以下が設定されています。

      • realm は、AD レルム名文字列を定義します。
      • admin は AD ドメイン管理者文字列を定義します。
      • Password は、AD ドメイン管理者のパスワード文字列を定義します。
    • SSSD が AD に保存されている POSIX 属性 (uidNumbergidNumber など) を処理する POSIX 信頼合意を作成するには、以下の内容で add-trust.yml Playbook を作成します。

      ---
      - name: Playbook to create a trust
        hosts: ipaserver
        become: true
      
        tasks:
          - name: ensure the trust is present
            ipatrust:
              ipaadmin_password: SomeADMINpassword
              realm: ad.example.com
              admin: Administrator
              password: secret_password
              range_type: ipa-ad-trust-posix
              state: present
    • フォレストルートドメインの AD ドメインコントローラーからの詳細を要求して、IdM が適切な範囲タイプ ipa-ad-trust または ipa-ad-trust-posix を選択しようとする信頼合意を作成するには、以下の内容を含む add-trust.yml Playbook を作成します。

      ---
      - name: Playbook to create a trust
        hosts: ipaserver
        become: true
      
        tasks:
          - name: ensure the trust is present
            ipatrust:
              ipaadmin_password: SomeADMINpassword
              realm: ad.example.com
              admin: Administrator
              password: secret_password
              state: present
    警告

    信頼の作成時に ID 範囲タイプを指定せず、IdM が AD フォレストルートドメインの POSIX 属性を検出しない場合は、信頼インストールスクリプトで Active Directory ドメイン ID 範囲を選択します。

    IdM がフォレストルートドメインの POSIX 属性を検出すると、信頼インストールスクリプトは、Active Directory domain with POSIX attributes ID 範囲を選択し、UID および GID が AD に正しく定義されていることを前提とします。

    ただし、POSIX 属性が AD で正しく設定されていない場合は、AD ユーザーを解決できません。たとえば、IdM システムへのアクセスを必要とするユーザーおよびグループがフォレストルートドメインの一部ではなく、フォレストドメインの子ドメインにある場合は、インストールスクリプトで、子 AD ドメインで定義された POSIX 属性が検出されない場合があります。この場合、Red Hat は、信頼の確立時に POSIX ID 範囲タイプを明示的に選択することを推奨します。

  3. ファイルを保存します。
  4. Playbook ファイルとインベントリーファイルを指定して Ansible Playbook を実行します。

    $ ansible-playbook -v -i inventory add-trust.yml

関連情報

  • /usr/share/doc/ansible-freeipa/README-trust.md
  • /usr/share/doc/ansible-freeipa/playbooks/trust