附录 D. ACL 参考
本节介绍了每个资源控制的内容,列出描述这些操作结果的可能操作,并为定义的每个 ACL 资源提供默认的 ACI。每个子系统仅包含与那个子系统相关的 ACL。
D.1. 关于 ACL 配置文件
访问控制 是设置可以访问服务器一部分的规则以及用户可以执行的操作的方法。依赖于 LDAP 目录服务并使用 Java 控制台(CA、KRA、OCSP 和 TKS)的四个子系统都实施 LDAP 风格的访问控制来访问其资源。这些访问控制列表(ACL)位于 /var/lib/pki/ instance_name/conf/subsystem/acl.ldif
文件中。
本节仅提供有关访问控制概念的简要概述。Red Hat Directory Server Administration Guide 中的 Managing Access Control 章节包括了更详细的信息。
证书系统 ACL 文件是由内部数据库加载的 LDIF 文件。各个 ACL 定义为 资源ACLS
属性,它们标识受保护子系统的区域,然后是正在设置的所有特定访问控制的列表。
resourceACLS: class_name:all rights: allow|deny (rights) type=target description
resourceACLS: class_name:all rights: allow|deny (rights) type=target description
允许或拒绝对资源的访问的每个规则称为访问控制指令( ACI )。(资源的所有 ACI 的总和是一个访问控制列表。)在定义实际 ACI 之前,ACL 属性首先应用于证书系统子系统使用的特定插件类。这会将每个 ACL 专注于子系统执行的特定功能,从而为实例提供更高的安全性,并对应用 ACL 更好地控制。
例 D.1. 默认 ACL 来列出证书配置文件
resourceACLS: certServer.ca.profiles:list:allow (list) group="Certificate Manager Agents":Certificate Manager agents may list profiles
resourceACLS: certServer.ca.profiles:list:allow (list) group="Certificate Manager Agents":Certificate Manager agents may list profiles
由于每个子系统(CA、KRA、OCSP 和 TKS)都有不同的资源用于其操作,因此每个子系统实例都有自己的 acl.ldif
文件及其自己定义的 ACL。
每个 ACI 定义了可以执行的操作或行为( 右侧),以及 ACI 应用到什么( 目标)。ACI 的基本格式为:
allow|deny (rights) user|group
allow|deny (rights) user|group
权限 是 ACI 允许用户执行的操作类型。对于 LDAP ACI,对目录条目的权限列表相对有限,如搜索、读取、写入和删除。证书系统使用覆盖常见 PKI 任务的额外权限,如撤销、提交和分配。
如果 ACI 中没有显式允许某个操作,则会隐式拒绝操作。如果一个 ACI 中明确拒绝某个操作,它会解析显式允许的任何 ACI。始终希望使用拒绝规则来允许规则提供额外的安全性。
每个 ACI 必须应用到特定的用户或组。这使用几个常见条件(通常是 user=
或 group=
)进行设置,但存在其他选项,如 ipaddress=
,它定义了基于客户端的访问,而不是基于条目的访问。如果有多个条件,可以使用双管道(||)运算符组成条件,表示逻辑分布("或"),以及 double ampersand (&&)运算符,表示逻辑使用("and")。例如,group="group1" || "group2
"。
resourceACLS
属性值的每一个区域在下表中定义。
值 | 描述 |
---|---|
class_name | ACI 应用到的插件类。 |
所有操作 |
ACI 定义中涵盖的每个操作列表。单个 ACI 和 |
allow|deny | 是否允许对目标用户或组执行操作,还是拒绝目标用户或组。 |
(操作) | 允许或拒绝的操作。 |
type=target |
用于标识应用到哪些目标。这通常是用户(如 |
description | 有关 ACL 的作用的描述。 |