Ansible Automation Platform の Central Authentication のインストールおよび設定
Ansible Automation Platform の Central Authentication 機能の有効化
概要
はじめに
Ansible Automation Platform Central Authentication はサードパーティーのアイデンティティープロバイダー (idP) ソリューションで、Ansible Automation Platform 全体で使用できる、シンプルなシングルサインオンソリューションを実現します。プラットフォーム管理者は、Central Authentication を使用して接続性と認証をテストし、新規ユーザーをオンボードしてグループに割り当てて設定し、ユーザーパーミッションを管理できます。Central Authentication は、OpenID Connect ベースのサポートおよび LDAP サポートだけでなく、お客様の使用状況をブートストラップ化するのに使用できるサポート対象の REST API も提供します。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Automation Hub 向けの Ansible Automation Platform Central Authentication
Automation Hub の Ansible Automation Platform Central Authentication を有効にするには、まず Red Hat Ansible Automation Platform インストーラーをダウンロードし、本書で詳しく記載されている必須手順に従って進めます。
本書のインストーラーは、基本的なスタンドアロンデプロイメント向けに Central Authentication をインストールします。スタンドアロンモードは Central Authentication Server インスタンスのみを実行するため、クラスター化されたデプロイメントでは利用できません。スタンドアロンモードは、中央認証の機能をテストドライブおよび試行するために便利ですが、単一障害点しかないため、実稼働環境でスタンドアロンモードを使用することは推奨しません。
別のデプロイメントモードで Central Authentication をインストールするには、本書 でデプロイメントオプションを確認してください。
1.1. システム要件
Ansible Automation Platform Central Authentication のインストールおよび実行には、最小要件がいくつかあります。
- Java を実行するオペレーティングシステム
- Java 8 JDK
- zip または gzip および tar
- 512 MB 以上のメモリー
- 1GB 以上のディスク領域
- クラスターで Central Authentication を実行する場合は、PostgreSQL、MySQL、Oracle などの共有外部データベース。詳細は、本書のデータベースの設定 セクションを参照してください。
- クラスターで実行する必要がある場合は、マシンでのネットワークマルチキャストサポート。Central Authentication はマルチキャストなしでクラスター化できますが、これには設定変更が複数必要になります。詳細は、本書のクラスターリング セクションを参照してください。
-
Linux では、
/dev/random
の使用がセキュリティーポリシーで義務付けられていない限り、利用可能なエントロピーの不足による Central Authentication のハングを防ぐために、ランダムデータのソースとして/dev/urandom
を使用することをお勧めします。これを行うには、Oracle JDK 8 および OpenJDK 8 で、システムの起動時にjava.security.egd
システムプロパティーをfile:/dev/urandom
に設定します。
1.2. Automation Hub で使用する Ansible Automation Platform Central Authentication のインストール
Ansible Automation Platform Central Authentication のインストールは、Red Hat Ansible Automation Platform インストーラーに含まれています。以下の手順を使用して Ansible Automation Platform をインストールしてから、インベントリーファイルに必要なパラメーターを設定して、Ansible Automation Platform と Central Authentication の両方を正常にインストールします。
1.2.1. Red Hat Ansible Automation Platform インストーラーの選択および取得
Red Hat Enterprise Linux 環境のインターネット接続に基づいて、必要な Ansible Automation Platform インストーラーを選択します。以下のシナリオを確認し、ニーズを満たす Red Hat Ansible Automation Platform インストーラーを決定してください。
Red Hat カスタマーポータルで Red Hat Ansible Automation Platform インストーラーのダウンロードにアクセスするには、有効な Red Hat カスタマーアカウントが必要です。
インターネットアクセスを使用したインストール
Red Hat Enterprise Linux 環境がインターネットに接続している場合は、Ansible Automation Platform インストーラーを選択します。インターネットアクセスを使用してインストールすると、必要な最新のリポジトリー、パッケージ、および依存関係が取得されます。
- https://access.redhat.com/downloads/content/480 に移動します。
- Ansible Automation Platform <latest-version> Setup の Download Now をクリックします。
ファイルを展開します。
$ tar xvzf ansible-automation-platform-setup-<latest-version>.tar.gz
インターネットアクセスなしでのインストール
インターネットにアクセスできない場合や、オンラインリポジトリーから個別のコンポーネントおよび依存関係をインストールしたくない場合は、Red Hat Ansible Automation Platform の Bundle インストーラーを使用します。Red Hat Enterprise Linux リポジトリーへのアクセスは依然として必要です。その他の依存関係はすべて tar アーカイブに含まれます。
- https://access.redhat.com/downloads/content/480 に移動します。
- Ansible Automation Platform <latest-version> Setup Bundle の Download Now をクリックします。
ファイルを展開します。
$ tar xvzf ansible-automation-platform-setup-bundle-<latest-version>.tar.gz
1.2.2. Red Hat Ansible Automation Platform インストーラーの設定
インストーラーを実行する前に、インストーラーパッケージにあるインベントリーファイルを編集して、Automation Hub および Ansible Automation Platform 認証のインストールを設定します。
[automationhub] ホストの到達可能な IP アドレスを指定して、ユーザーが別のノードから Private Automation Hub のコンテンツを同期して、新しいイメージをコンテナーレジストリーにプッシュできるようにします。
インストーラーのディレクトリーに移動します。
オンラインインストーラー:
$ cd ansible-automation-platform-setup-<latest-version>
バンドルのインストーラー:
$ cd ansible-automation-platform-setup-bundle-<latest-version>
- テキストエディターで inventory ファイルを開きます。
[automationhub]
配下にあるインベントリーファイルパラメーターを編集して、Automation Hub ホストのインストールを指定します。-
Automation Hub の場所の IP アドレスまたは FQDN を使用して、
[automationhub]
配下にグループホスト情報を追加します。 -
インストール仕様に基づいて、
automationhub_admin_password
、automation_pg_password
、および追加のパラメーターのパスワードを入力します。
-
Automation Hub の場所の IP アドレスまたは FQDN を使用して、
-
sso_keystore_password
フィールドにパスワードを入力します。 [SSO]
のインベントリーファイルパラメーターを編集して、Central Authentication のインストール先のホストを指定します。-
sso_console_admin_password
フィールドにパスワードを入力し、インストール仕様に基づいて追加パラメーターを入力します。
-
1.2.3. Red Hat Ansible Automation Platform インストーラーの実行
インベントリーファイルが更新されたら、インストーラーパッケージにある setup.sh
Playbook を使用してインストーラーを実行します。
setup.sh
Playbook を実行します。$ ./setup.sh
1.2.4. Central Authentication の管理者ユーザーとしてログインします。
Red Hat Ansible Automation Platform がインストールされたら、inventory ファイルに指定した admin 認証情報を使用して、管理ユーザーとしてログインして Central Authentication Server にログインします。
- Ansible Automation Platform Central Authentication インスタンスに移動します。
-
インベントリーファイルの
sso_console_admin_username
およびsso_console_admin_password fields
に指定した admin 認証情報を使用して、ログインします。
Ansible Automation Platform Central Authentication が正常にインストールされており、管理者ユーザーでログインしている場合は、以下の手順に従ってユーザーストレージプロバイダー (LDAP など) を追加して続行できます。
第2章 Ansible Automation Platform Central Authentication へのユーザーストレージプロバイダー (LDAP/Kerberos) の追加
Ansible Automation Platform Central Authentication には、LDAP/AD プロバイダーが組み込まれています。LDAP プロバイダーを Central Authentication に追加して、LDAP データベースからユーザー属性をインポートできます。
前提条件
- SSO admin ユーザーとしてログインしている。
手順
- Ansible Automation Platform Central Authentication に SSO 管理ユーザーとしてログインします。
- ナビゲーションバーから、Configure section → User Federation を選択します。
- Add provider というドロップダウンメニューを使用して LDAP プロバイダーを選択し、LDAP 設定ページに進みます。
以下の表には、LDAP 設定で利用可能なオプションをまとめています。
設定オプション | 説明 |
ストレージモード | ユーザーを Central Authentication ユーザーデータベースにインポートする場合は On に設定します。詳細は、こちらのセクション を参照してください。 |
モードの編集 | 管理者がユーザーメタデータで実行できる変更の種類を決定します。詳細は、こちらのセクション を参照してください。 |
コンソール表示名 | このプロバイダーが管理コンソールで参照される場合に使用される名前 |
優先度 | ユーザーを検索する、またはユーザーを追加する際のこのプロバイダーの優先度 |
登録の同期 | 管理コンソールで Ansible Automation Platform Central Authentication で作成した新規ユーザー、または登録ページを LDAP に追加する必要がある場合に有効にします。 |
Kerberos 認証を許可 | LDAP からプロビジョニングされたユーザーデータを使用して、レルムで Kerberos/SPNEGO 認証を有効にします。詳細は、こちらのセクション を参照してください。 |
第3章 Automation Hub 管理者権限の割り当て
ハブの管理者ユーザーには、ユーザーのパーミッションとグループの管理用に、hubadmin のロールを割り当てる必要があります。Ansible Automation Platform Central Authentication クライアントを使用して、hubadmin のロールをユーザーに割り当てることができます。
前提条件
- ユーザーストレージプロバイダー (LDAP など) が Central Authentication に追加されている。
手順
-
SSO クライアントで
ansible-automation-platform
レルムに移動します。 - ナビゲーションバーから Manage → Users を選択します。
- ID をクリックして、一覧からユーザーを選択します。
- Role Mappings タブをクリックします。
- Client Roles のドロップダウンメニューを使用して、automation-hub を選択します。
- Available Roles フィールドから hubadmin をクリックし、Add selected > をクリックします。
これで、ユーザーは hubadmin に設定されました。ステップ 3-6 を繰り返して、hubadmin ロールを割り当てます。
第4章 Ansible Automation Platform Central Authentication へのアイデンティティーブローカーの追加
Ansible Automation Platform Central Authentication は、ソーシャルプロバイダーとプロトコルベースのプロバイダーの両方をサポートします。アイデンティティーブローカーを Central Authentication に追加してレルムのソーシャル認証を有効化でき、ユーザーは Google、Facebook、GitHub などの既存のソーシャルネットワークアカウントを使用してログインできます。
サポート対象のソーシャルネットワークの一覧と、そのネットワークの有効化の詳細は、本セクション を参照してください。
プロトコルベースのプロバイダーは、ユーザーの認証および承認に特定のプロトコルに依存するものです。これにより、特定のプロトコルに準拠するアイデンティティープロバイダーに接続できます。Ansible Automation Platform Central Authentication は、SAML v2.0 プロトコルおよび OpenID Connect v1.0 プロトコルをサポートします。
手順
- Ansible Automation Platform Central Authentication に管理ユーザーとしてログインします。
- ナビゲーションバーの Configure セクションで、Identity Providers をクリックします。
- Add provider というドロップダウンメニューを使用して、アイデンティティープロバイダーを選択し、アイデンティティープロバイダー設定ページに進みます。
以下の表は、アイデンティティープロバイダー設定で使用できるオプションの一覧です。
表4.1 Identity Broker 設定オプション
設定オプション | 説明 |
エイリアス |
エイリアスはアイデンティティープロバイダーの一意の ID です。これはアイデンティティープロバイダーを内部で参照するために使用されます。 |
有効 | プロバイダーのオン/オフを切り替えます。 |
Hide on Login Page |
有効にすると、このプロバイダーは、ログインページにログインオプションとして表示されません。クライアントは、ログインの要求に使用する URL の |
Account Linking Only | これが有効な場合は、このプロバイダーを使用したユーザーのログインはできず、ログインページのオプションとしては表示されません。既存のアカウントをこのプロバイダーにリンクできます。 |
Store Tokens | アイデンティティープロバイダーから受け取ったトークンを保存するかどうか。 |
保存されたトークンの読み取り可能 | ユーザーが保存されたアイデンティティープロバイダートークンを取得できるかどうか。これは、broker クライアントレベルのロール read token にも適用されます。 |
Trust Email | アイデンティティープロバイダーが提供するメールアドレスが信頼されているかどうか。レルムにメール検証が必要な場合、この IDP からログインするユーザーはメールの検証プロセスを行う必要はありません。 |
GUI Order | ログインページに、利用可能な IDP がどのように表示されているかを並べ替える注文番号。 |
First Login Flow | 初めてこの IDP を使用して Central Authentication にログインするユーザーに対してトリガーされる認証フローを選択します。 |
Post Login Flow | ユーザーが外部アイデンティティープロバイダーでのログインを終了するとトリガーされる認証フローを選択します。 |
4.1. Ansible Automation Platform Central Authentication を使用したグループパーミッションの管理
Ansible Automation Platform では、ユーザーグループに特定のパーミッションを割り当てることで、ユーザーアクセスを管理できます。Ansible Automation Platform に初めてログインすると、そのグループは Automation Hub のユーザーアクセスページに表示され、各グループにユーザーアクセスとパーミッションを割り当てることができます。
4.1.1. グループへのパーミッションの割り当て
ユーザーがシステム内の特定の機能にアクセスできるパーミッションを Automation Hub のグループに割り当てることができます。
前提条件
hubadmin
ユーザーとしてログインしている。
手順
- ローカルの Automation Hub にログインします。
- Groups に移動します。
- グループ名をクリックします。
- Edit をクリックします。
- パーミッションタイプのフィールドをクリックし、一覧に表示されるパーミッションを選択します。
- パーミッションの割り当てが完了したら、Save をクリックします。
このグループは、割り当てられたパーミッションに関連付けられた Automation Hub の機能にアクセスできるようになりました。
4.1.2. Automation Hub のパーミッション
パーミッションは、各グループが特定のオブジェクトに対して実行する一連の定義済みのアクションを提供します。以下のパーミッションに基づいて、グループに必要なアクセスレベルを決定します。
表4.2 パーミッション参照テーブル
オブジェクト | パーミッション | 説明 |
---|---|---|
namespace | namespace の追加 namespace へのアップロード 名前空間の変更 名前空間の削除 | これらのパーミッションが割り当てられたグループは、名前空間の作成、コレクションのアップロード、または削除を行うことができます。 |
collections | Ansible リポジトリーコンテンツの変更 コレクションの削除 | このパーミッションが割り当てられたグループは、承認機能を使用してリポジトリー間でコンテンツを移動でき、確定または拒否機能で staging から published または rejected リポジトリーにコンテンツを移動して、コレクションを削除します。 |
users | ユーザーの表示 ユーザーの削除 ユーザーの追加 ユーザーの変更 | これらのパーミッションが割り当てられたグループは、ユーザー設定の管理および Automation Hub へのアクセスが可能です。 |
groups | グループの表示 グループの削除 グループの追加 グループの変更 | これらのパーミッションが割り当てられたグループは、グループ設定の管理および Automation Hub へのアクセスが可能です。 |
コレクションリモート | コレクションリモートの変更 コレクションリモートの表示 | これらの権限を持つグループは、Collections → Repo Management に移動して、リモートリポジトリーを設定できます。 |
containers | コンテナーの名前空間パーミッションの変更 コンテナーの変更 イメージタグの変更 新規コンテナーの作成 既存コンテナーへのプッシュ コンテナーリポジトリーの削除 | これらのパーミッションが割り当てられたグループは、Automation Hub でコンテナーリポジトリーを管理できます。 |
リモートレジストリー | リモートレジストリーの追加 リモートレジストリーの変更 リモートレジストリーの削除 | これらのパーミッションが割り当てられたグループは、Automation Hub に追加されたリモートレジストリーを追加、変更、または削除できます。 |
タスク管理 | タスクの変更 タスクの削除 全タスクの表示 | これらのパーミッションが割り当てられたグループは、Automation Hub の Task Management に追加されたタスクを管理できます。 |