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 関連のパーミッションがあります。
System: Read CA ACLs
ユーザーが CA ACL の属性すべてを読み込むことを許可します。
System: Add CA ACL
ユーザーが新規 CA ACL を追加することを許可します。
System: Delete CA ACL
ユーザーが既存の CA ACL を削除することを許可します。
System: Modify CA ACL
ユーザーが CA ACL 属性を修正し、CA ACL を有効化、無効化することを許可します。
System: Manage CA ACL membership
ユーザーが CA ACL 内の CA、プロファイル、ユーザー、ホスト、およびサービスメンバーシップを管理することを許可します。
これらのパーミッションはすべて、デフォルトの CA Administrator 権限に含まれています。IdM のロールベースのアクセス制御およびパーミッションの管理についての詳細は、「ロールベースのアクセス制御の定義」 を参照してください。
本セクションでは、ipa caacl コマンドを使用して CA ACL を管理する重要な側面のみを説明しています。このコマンドに関する完全な情報については、以下のように --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 ではこれらのオプションで all の値のみを受け付けます。これは、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 を all ユーザーカテゴリーに関連付ける必要があります。

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 ではこれらのオプションで all カテゴリーしか受け付けないことに注意してください。これらのオプションについての詳細は、「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-caipa caacl-remove-ca
CA を追加または削除します。
ipa caacl-add-hostipa caacl-remove-host
ホストもしくはホストグループを追加または削除します。
ipa caacl-add-profileipa caacl-remove-profile
プロファイルを追加または削除します。
ipa caacl-add-serviceipa caacl-remove-service
サービスを追加または削除します。
ipa caacl-add-useripa caacl-remove-user
ユーザーもしくはグループを追加または削除します。
以下に例を示します。
$ ipa caacl-add-user ca_acl_name --groups=group_name
CA ACL に追加するオブジェクトまたはオブジェクトグループと同じオブジェクトのカテゴリーを 「CA ACL の作成」 にあるように使用できないことに注意してください。たとえば、ipa caacl-add-user --users=user_name コマンドを --usercat=all オプションで指定した CA ACL で実行しようとすると、これは失敗します。
$ 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 を all ユーザーカテゴリーに関連付ける必要があります。
これらのコマンドで必須の構文と利用可能なオプションについては、以下のようにコマンドに --help を追加して実行してください。
$ ipa caacl-add-user --help

24.5.2. Web UI での CA ACL 管理

IdM Web UI で CA ACL を管理するには、以下の手順に従います。
  1. Authentication タブを開き Certificates サブタブを選択します。
  2. CA ACLs セクションを開きます。
    Web UI での CA ACL ルールの管理

    図24.9 Web UI での CA ACL ルールの管理

CA ACLs セクションでは、新規 CA ACL の追加、既存 CA ACL についての情報表示、属性の修正、選択した CA ACL の有効化と無効化、さらにはそれを削除することができます。
たとえば、既存の CA ACL を修正するには、以下を実行します。
  1. CA ACL 名をクリックして、CA ACL の設定ページを開きます。
  2. 開いたページで必要な情報を入力します。
    ProfilesPermitted to have certificates issued のセクションでは、CA ACL を証明書プロファイル、ユーザーまたはユーザーグループ、ホストまたはホストグループ、もしくはサービスに関連付けることができます。Add ボタンでこれらのオブジェクトを追加するか、Anyone オプションを選択して CA ACL を全ユーザー、ホスト、またはサービスに関連付けます。
  3. Save をクリックして新規設定を保存します。
    Web UI での CA ACL ルールの修正

    図24.10 Web UI での CA ACL ルールの修正