18.10. 定义权限
权限规则定义与 ACI 关联的权限,以及是否允许或拒绝访问。
在 ACI 中,以下突出显示的部分是权限规则:
(target_rule) (version 3.0; acl "ACL_name"; permission_rule bind_rules;)
语法
权限规则的一般语法是:
permission (rights)
- 权限 :如果 ACI 允许或拒绝权限,则设置。
- 权限 :设置 ACI 允许或拒绝的权限。请参阅 第 18.10.1 节 “用户权限”。
例 18.11. 定义权限
要启用存储在 ou=People,dc=example,dc=com 条目中的用户,以搜索并显示其自身条目中的所有属性:
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (target = "ldap:///ou=People,dc=example,dc=com") (version 3.0;
acl "Allow users to read and search attributes of own entry"; allow (search, read)
(userdn = "ldap:///self");)
18.10.1. 用户权限
权限规则的权限定义了授予或拒绝的操作。在 ACI 中,您可以设置以下一个或多个权限:
right | 描述 |
---|---|
读取 | 设置用户是否可以读取目录数据。此权限只适用于 LDAP 中的搜索操作。 |
write | 通过添加、修改或删除属性来设置用户是否可以修改条目。此权限适用于 LDAP 中的 modify 和 modrdn 操作。 |
add | 设置用户可以创建条目。此权限只适用于 LDAP 中的 add 操作。 |
delete | 设置用户是否可以删除条目。此权限只适用于 LDAP 中的 delete 操作。 |
search | 设置用户可以搜索目录数据。要查看作为搜索结果的一部分返回的数据,分配 search 和 read 权限。此权限只适用于 LDAP 中的搜索操作。 |
compare | 设置用户是否可以将其提供的数据与目录中存储的数据进行比较。通过 比较 权限,目录会返回成功或失败消息以响应查询,但用户无法看到 entry 或 属性的值。此权限仅适用于 LDAP 中的比较操作。 |
selfwrite | 设置用户是否可以从组添加或删除自己的 DN。这个右边仅用于组管理。 |
proxy |
设置指定的 DN 是否可以使用另一个条目的权限访问目标。代理右侧的代理 在 ACL 范围内被授予,作为正确授予的用户或组可以作为任何目录服务器用户运行命令。您不能将代理权限限制为某些用户。
为安全起见,设置 ACI,它在目录的最目标级别设置 proxy 权限。
|
all | 设置除 代理外的所有权限。 |
18.10.2. LDAP 操作所需的权限
本节介绍了您必须根据您要授权其执行的 LDAP 操作类型向用户授予权限。
- 添加一个条目:
- 授予对 要添加的 条目的添加权限。
- 授予条目中每个属性值 的写入权限。默认情况下会授予此右边,但可使用 targattrfilters 关键字进行限制。
- 删除条目:
- 授予对 您要删除的 条目的删除权限。
- 授予条目中每个属性值 的写入权限。默认情况下会授予此右边,但可使用 targattrfilters 关键字进行限制。
- 修改条目中的属性:
- 授予属性类型 的写入权限。
- 授予每个属性类型值 的写入权限。默认情况下会授予此右边,但可使用 targattrfilters 关键字进行限制。
- 修改条目的 RDN:
- 授予条目 的写入权限。
- 授予新 RDN 中使用的属性类型 的写入权限。
- 如果要授予删除旧 RDN 的权利,授予旧 RDN 中使用的属性类型 的写入权限。
- 授予新 RDN 中使用的属性值 的写入权限。默认情况下会授予此右边,但可使用 targattrfilters 关键字进行限制。
- 比较属性值:
- 授予属性类型 的比较 权限。
- 搜索条目:
- 授予搜索过滤器中使用的每个属性类型 的搜索 权限。
- 授予对条目中使用的属性类型 的读取权限。
18.10.3. 访问控制和 modrdn 操作
要使用 ACI 显式拒绝 modrdn 操作,请将相关条目为目标,但忽略 targetattr 关键字。例如,要添加一个 ACI 来定义 cn=example,ou=Groups,dc=example,dc=com 组,无法在 ou=body,dc=example,dc=com 中重命名包含
cn
属性的条目:
ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: dc=example,dc=com changetype: modify add: aci aci: (target="ldap:///cn=*,ou=people,dc=example,dc=com") (version 3.0; acl "Deny modrdn rights to the example group"; deny(write) groupdn="ldap:///cn=example,ou=groups,dc=example,dc=com";)