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 ID2efe1acffe9e8ab869f4 である。
    • client secret656a5228abc5f9545c85fa626aecbf69312d398c である。
  • 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 が保存されていることを前提としています。

手順

  1. 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
  2. ファイルを保存します。
  3. 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 アップストリームドキュメント