36.3. Ansible を使用して外部アイデンティティープロバイダーへの参照を作成する
外部アイデンティティープロバイダー (IdP) を Identity Management (IdM) 環境に接続するには、IdM で IdP 参照を作成します。この手順では、idp ansible-freeipa モジュールを使用して github 外部 IdP への参照を設定します。
前提条件
IdM を OAuth アプリケーションとして外部 IdP に登録し、IdM ユーザーが IdM への認証に使用するデバイス上でクライアント ID とクライアントシークレットを生成した。この例では、以下を前提としています。
- my_github_account_name が github ユーザーであり、そのアカウントを IdM ユーザーが IdM への認証に使用する。
-
client IDが 2efe1acffe9e8ab869f4 である。 -
client secretが 656a5228abc5f9545c85fa626aecbf69312d398c である。
- IdM サーバーで SSSD 2.7.0 以降を使用している。
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
freeipa.ansible_freeipaコレクションがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
Ansible コントロールノードで、configure-external-idp-reference.yml Playbook を作成します。
--- - name: Configure external IdP hosts: ipaserver become: false gather_facts: false tasks: - name: Ensure a reference to github external provider is available freeipa.ansible_freeipa.ipaidp: ipaadmin_password: "{{ ipaadmin_password }}" name: github_idp provider: github client_ID: 2efe1acffe9e8ab869f4 secret: 656a5228abc5f9545c85fa626aecbf69312d398c idp_user_id: my_github_account_name- ファイルを保存します。
Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory configure-external-idp-reference.yml
検証
IdM クライアントで、
ipa idp-showコマンドの出力に、作成した IdP 参照が表示されることを確認します。[idmuser@idmclient ~]$ ipa idp-show github_idp