Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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 を管理するには、以下を実行します。
  1. Authentication タブと Certificates サブタブを開きます。
  2. CA ACL セクションを開きます。

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

    Web UI での CA ACL ルールの管理
CA ACL セクションで、新しい CA ACL を追加、既存の CA ACL に関する情報の表示、属性の変更、選択した CA ACL の有効化、無効化、または削除を行うことができます。
たとえば、既存の CA ACL を変更するには、以下を実行します。
  1. CA ACL の名前をクリックし、CA ACL 設定ページを開きます。
  2. CA ACL 設定ページで、必要な情報を入力します。
    Profiles および Permitted to have certificates issued セクションを使用すると、CA ACL を証明書プロファイル、ユーザー、ユーザーグループ、ホスト、またはホストグループ、またはサービスに関連付けることができます。Add ボタンを使用してこれらのオブジェクトを追加するか、Anyone オプションを選択して CA ACL をすべてのユーザー、ホスト、またはサービスに関連付けることができます。
  3. Save をクリックして、新しい設定を確定します。

    図24.10 Web UI での CA ACL ルールの変更

    Web UI での CA ACL ルールの変更