24.5. 認証局 ACL ルール
認証局のアクセス制御リスト (CA ACL) ルールは、どのユーザー、サービス、またはホストにどのプロファイルを使用して証明書を発行するかを定義します。CA ACL は、プロファイル、プリンシパル、およびグループを関連付けることで、特定のプロファイルを使用した証明書をプリンシパルまたはグループが要求できるようにします。
- ACL が複数のプロファイルへのアクセスを許可
- ACL には複数のユーザー、サービス、ホスト、ユーザーグループ、およびホストグループを関連付けることができます。
たとえば、管理者は CA ACL を使用して、ロンドンのオフィスから作業する社員向けのプロファイルの使用を、そのオフィスに関連するグループのメンバーであるユーザーに限定することができます。
注記
「証明書プロファイル」 および CA ACL で説明されている証明書プロファイルを組み合わせることにより、管理者はカスタム証明書プロファイルへのアクセスを定義し、制御できます。プロファイルおよび CA ACL を使用してユーザー証明書を発行する方法は、「IdM CA でユーザー証明書を発行するための証明書プロファイルおよび ACL の使用」 を参照してください。
24.5.1. コマンドラインでの CA ACL 管理
CA ACL ルールを管理する
caacl
プラグインを使用すると、特権ユーザーは、指定された CA ACL を追加、表示、変更、または削除できます。プラグインがサポートするすべてのコマンドを表示するには、ipa caacl コマンドを実行します。
$ ipa caacl Manage CA ACL rules. ... EXAMPLES: Create a CA ACL "test" that grants all users access to the "UserCert" profile: ipa caacl-add test --usercat=all ipa caacl-add-profile test --certprofiles UserCert Display the properties of a named CA ACL: ipa caacl-show test Create a CA ACL to let user "alice" use the "DNP3" profile on "DNP3-CA": ipa caacl-add alice_dnp3 ipa caacl-add-ca alice_dnp3 --cas DNP3-CA ipa caacl-add-profile alice_dnp3 --certprofiles DNP3 ipa caacl-add-user alice_dnp3 --user=alice ...
caacl
操作を実行するには、必要なパーミッションを持つユーザーとして操作する必要があります。IdM には、デフォルトで以下の CA ACL 関連のパーミッションが含まれています。
- システム:CA ACL の読み取り
- ユーザーが CA ACL のすべての属性を読み取りできるようにします。
- システム:CA ACL の追加
- ユーザーが新規 CA ACL を追加できるようにします。
- システム:CA ACL の削除
- ユーザーが既存の CA ACL を削除できるようにします。
- システム:CA ACL の変更
- ユーザーが CA ACL の属性を変更し、CA ACL を無効化または有効化できるようにします。
- システム:CA ACL メンバーシップの管理
- ユーザーが CA ACL の CA、プロファイル、ユーザー、ホスト、およびサービスメンバーシップを管理できるようにします。
これらのすべてのパーミッションは、デフォルトの
CA Administrator
特権に含まれます。IdM のロールベースのアクセス制御およびパーミッションの管理に関する詳細は、「ロールベースのアクセス制御の定義」 を参照してください。
本セクションでは、CA ACL 管理に ipa caacl コマンドを使用する最も重要な側面のみを説明します。コマンドの詳細は、以下のように
--help
オプションを指定して実行します。
$ ipa caacl-mod --help Usage: ipa [global-options] caacl-mod NAME [options] Modify a CA ACL. Options: -h, --help show this help message and exit --desc=STR Description --cacat=['all'] CA category the ACL applies to --profilecat=['all'] Profile category the ACL applies to ...
CA ACL の作成
新しい CA ACL を作成するには、ipa caacl-add コマンドを使用します。オプションを指定せずにコマンドを実行すると、
ipa caacl-add
スクリプトにより、新しい CA ACL に必要な情報の入力が求められます。
$ ipa caacl-add ACL name: smime_acl ------------------------ Added CA ACL "smime_acl" ------------------------ ACL name: smime_acl Enabled: TRUE
新しい CA ACL はデフォルトで有効になっています。
ipa caacl-add で使用できる最も注目すべきオプションは、CA ACL を CA、証明書プロファイル、ユーザー、ホスト、またはサービスカテゴリーに関連付けるオプションです。
--cacat
--profilecat
--usercat
--hostcat
--servicecat
IdM は、このオプションを使用した
すべて
の値のみを受け入れ、CA ACL をすべての CA、プロファイル、ユーザー、ホスト、またはサービスに関連付けます。たとえば、CA ACL をすべてのユーザーおよびユーザーグループに関連付けるには、以下を実行します。
$ ipa caacl-add ca_acl_name --usercat=all
CA、プロファイル、ユーザー、ホスト、およびサービスカテゴリーは、特定のオブジェクトまたはオブジェクトのグループを CA ACL に追加する代わりに、「CA ACL へのエントリーの追加および CA ACL からエントリーの削除」 で説明されています。カテゴリーを使用したり、同じタイプのオブジェクトまたはグループを追加することはできません。たとえば、
--usercat=all
オプションを使用して、ipa caacl-add-user --users=user_name コマンドで CA ACL にユーザーを追加することはできません。
注記
ユーザーもしくはグループが対応する CA ACL に追加されていないと、証明書プロファイルを使用しているそのユーザーもしくはグループの証明書を要求しても失敗します。以下に例を示します。
$ ipa cert-request CSR-FILE --principal user --profile-id profile_id ipa: ERROR Insufficient access: Principal 'user' is not permitted to use CA '.' with profile 'profile_id' for certificate issuance.
「CA ACL へのエントリーの追加および CA ACL からエントリーの削除」 で説明されているように、ユーザーまたはグループを CA ACL に追加するか、CA ACL を
すべて
のユーザーカテゴリーに関連付ける必要があります。
CA ACL の表示
すべての CA ACL を表示するには、ipa caacl-find コマンドを使用します。
$ ipa caacl-find ----------------- 2 CA ACLs matched ----------------- ACL name: hosts_services_caIPAserviceCert Enabled: TRUE ...
Ipa caacl-find は、
--cacat
、--profilecat
、--usercat
、--hostcat
オプション、および --servicecat
オプションが使用できることに注意してください。これは、対応する CA、証明書プロファイル、ユーザー、ホスト、またはサービスカテゴリーで CA ACL への検索の結果をフィルタリングするために使用できます。IdM では、このオプションの すべて
のカテゴリーのみを許可することに注意してください。オプションの詳細は、「CA ACL の作成」 を参照してください。
特定の CA ACL に関する情報を表示するには、ipa caacl-show コマンドを使用します。
$ ipa caacl-show ca_acl_name ACL name: ca_acl_name Enabled: TRUE Host category: all ...
CA ACL の変更
既存の CA ACL を変更するには、ipa caacl-mod コマンドを使用します。ipa caacl-mod で使用できるコマンドラインオプションを使用して、必要な変更を渡します。たとえば、CA ACL の説明を変更し、CA ACL をすべての証明書プロファイルに関連付けるには、次のコマンドを実行します。
$ ipa caacl-mod ca_acl_name --desc="New description" --profilecat=all --------------------------- Modified CA ACL "ca_acl_name" --------------------------- ACL name: smime_acl Description: New description Enabled: TRUE Profile category: all
ipa caacl-mod が許可する最も注目すべきオプションは、
--cacat
、--profilecat
、--usercat
、--hostcat
、および --servicecat
です。これらのオプションの説明は、「CA ACL の作成」 を参照してください。
CA ACL の無効化および有効化
CA ACL を無効にするには、ipa caacl-disable コマンドを使用します。
$ ipa caacl-disable ca_acl_name --------------------------- Disabled CA ACL "ca_acl_name" ---------------------------
無効にされた CA ACL は適用されず、証明書を要求するのに使用できません。CA ACL を無効にしても、IdM から削除されません。
無効にした CA ACL を有効にするには、ipa caacl-enable コマンドを使用します。
$ ipa caacl-enable ca_acl_name --------------------------- Enabled CA ACL "ca_acl_name" ---------------------------
CA ACL の削除
既存の CA ACL を削除するには、ipa caacl-del コマンドを使用します。
$ ipa caacl-del ca_acl_name
CA ACL へのエントリーの追加および CA ACL からエントリーの削除
ipa caacl-add-* コマンドおよび ipa caacl-remove-* コマンドを使用すると、CA ACL に新しいエントリーを追加するか、既存のエントリーを削除できます。
- ipa caacl-add-ca および ipa caacl-remove-ca
- CA を追加または削除します。
- ipa caacl-add-host および ipa caacl-remove-host
- ホストまたはホストグループを追加または削除します。
- ipa caacl-add-profile および ipa caacl-remove-profile
- プロファイルを追加または削除します。
- ipa caacl-add-service および ipa caacl-remove-service
- サービスを追加または削除します。
- ipa caacl-add-user および ipa caacl-remove-user
- ユーザーまたはグループを追加または削除します。
以下に例を示します。
$ ipa caacl-add-user ca_acl_name --groups=group_name
「CA ACL の作成」 で説明されているように、オブジェクトまたはオブジェクトのグループを CA ACL に追加できず、で説明されているように、同じオブジェクトのカテゴリーを使用することができないことに注意してください。この設定は相互に排他的です。たとえば、
--user cat=all
オプションで指定した CA ACL で ipa caacl-add-user --users=user_name コマンドを実行しようとすると、コマンドは失敗します。
$ ipa caacl-add-user ca_acl_name --users=user_name ipa: ERROR: users cannot be added when user category='all'
注記
ユーザーもしくはグループが対応する CA ACL に追加されていないと、証明書プロファイルを使用しているそのユーザーもしくはグループの証明書を要求しても失敗します。以下に例を示します。
$ ipa cert-request CSR-FILE --principal user --profile-id profile_id ipa: ERROR Insufficient access: Principal 'user' is not permitted to use CA '.' with profile 'profile_id' for certificate issuance.
「CA ACL の作成」 で説明されているように、ユーザーまたはグループを CA ACL に追加するか、CA ACL を
すべて
のユーザーカテゴリーに関連付ける必要があります。
これらのコマンドと利用可能なオプションに必要な構文の詳細については
--help
オプションを追加してコマンドを実行します。以下に例を示します。
$ ipa caacl-add-user --help
24.5.2. Web UI からの CA ACL 管理
IdM Web UI で CA ACL を管理するには、以下を実行します。
- Authentication タブと Certificates サブタブを開きます。
- CA ACL セクションを開きます。
図24.9 Web UI での CA ACL ルールの管理
CA ACL セクションで、新しい CA ACL を追加、既存の CA ACL に関する情報の表示、属性の変更、選択した CA ACL の有効化、無効化、または削除を行うことができます。
たとえば、既存の CA ACL を変更するには、以下を実行します。
- CA ACL の名前をクリックし、CA ACL 設定ページを開きます。
- CA ACL 設定ページで、必要な情報を入力します。Profiles および Permitted to have certificates issued セクションを使用すると、CA ACL を証明書プロファイル、ユーザー、ユーザーグループ、ホスト、またはホストグループ、またはサービスに関連付けることができます。 ボタンを使用してこれらのオブジェクトを追加するか、Anyone オプションを選択して CA ACL をすべてのユーザー、ホスト、またはサービスに関連付けることができます。
図24.10 Web UI での CA ACL ルールの変更