35.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 サーバーで RHEL 9.1 以降を使用している。
- IdM サーバーで SSSD 2.7.0 以降を使用している。
次の要件を満たすように Ansible コントロールノードを設定した。
- Ansible バージョン 2.14 以降を使用している。
-
Ansible コントローラーに
ansible-freeipa
パッケージがインストールされている。 - RHEL 9.4 以降を使用している。
- ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible vault に
ipaadmin_password
が保存されていることを前提としています。
手順
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 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
関連情報
-
idp
ansible-freeipa
アップストリームドキュメント