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,管理员可以将配置文件的使用限制为仅属于伦敦办事处相关组成员的员工。
注意
通过将 第 24.4 节 “证书配置文件” 和 CA ACL 中描述的证书配置集与 CA ACL 相结合,管理员可以定义和控制自定义证书配置集的访问。有关使用配置集和 CA ACL 发布用户证书的描述,请参考 第 24.6 节 “使用证书配置文件和 ACL 来向 IdM CA 签发用户证书”

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、配置文件、用户、主机和服务成员资格。
所有这些权限都包含在默认的 CA Administrator 特权中。有关基于 IdM 角色的访问控制和管理权限的更多信息,请参阅 第 10.4 节 “定义基于角色的访问控制”
本节仅描述了将 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 仅接受带有这些选项的所有值,它们将 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 the ipa caacl-remove the 命令,您可以向 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”一节 所述;这些设置是相互排斥的。例如,如果您试图在通过 --usercat=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 配置页面中,填写所需信息。
    ProfilesPermitted to have certificate issued 部分,允许您将 CA ACL 与证书配置文件、用户或用户组、主机或主机组或服务相关联。您可以使用 Add 按钮添加这些对象,或者选择 Anyone 选项将 CA ACL 与所有用户、主机或服务关联。
  3. 单击 Save 以确认新配置。

    图 24.10. 在 Web UI 中修改 CA ACL 规则

    在 Web UI 中修改 CA ACL 规则