9.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 サーバーの準備ができている。
-
4.8.7 バージョン以降の IdM を使用している。サーバーにインストールされている IdM のバージョンを表示するには、
ipa --version
を実行します。 次の要件を満たすように Ansible コントロールノードを設定した。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipa
パッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_password
が保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipa
モジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
$ cd ~/MyPlaybooks/
ユースケースに基づいて、以下のいずれかのシナリオを選択します。
SSSD が SID に基づいて AD ユーザーおよびグループの UID および GID を自動的に生成する ID マッピング信頼合意を作成するには、以下の内容で
add-trust.yml
Playbook を作成します。--- - name: Playbook to create a trust hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: ensure the trust is present ipatrust: ipaadmin_password: "{{ ipaadmin_password }}" realm: ad.example.com admin: Administrator password: secret_password state: present
上記の例では、以下のようになります。
-
realm
は、AD レルム名文字列を定義します。 -
admin
は AD ドメイン管理者文字列を定義します。 -
Password
は、AD ドメイン管理者のパスワード文字列を定義します。
-
SSSD が AD に保存されている POSIX 属性 (
uidNumber
やgidNumber
など) を処理する POSIX 信頼合意を作成するには、以下の内容でadd-trust.yml
Playbook を作成します。--- - name: Playbook to create a trust hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: ensure the trust is present ipatrust: ipaadmin_password: "{{ ipaadmin_password }}" 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 vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: ensure the trust is present ipatrust: ipaadmin_password: "{{ ipaadmin_password }}" 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 範囲タイプを明示的に選択することを推奨します。
- ファイルを保存します。
Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-trust.yml
関連情報
- /usr/share/doc/ansible-freeipa/README-trust.md
- /usr/share/doc/ansible-freeipa/playbooks/trust