RHCA教程:rhe423-5 LDAP的ACI

LDAP的ACI(Access Control Instructions访问控制指南)

<!--[if !supportLists]-->一、<!--[endif]-->ACI的特点

<!--[if !supportLists]-->1、 <!--[endif]-->继承性:一个条目会继承其父条目及其以上条目的aci策略,且继承策略和自身策略地位平等。

 

 

<!--[if !supportLists]-->2、 <!--[endif]-->如果拒绝策略与允许策略相冲突时,拒绝优先。

<!--[if !supportLists]-->二、<!--[endif]-->ACI语法格式

<!--[if !supportLists]-->1、 <!--[endif]-->语法格式:aci (target)(version 3;acl “name”; permission bind_rules;)

 如:

[root@station2 ~]# vi anon-aci.ldif

dn: dc=station2,dc=example,dc=com

changetype: modify

add: aci

aci: (target ="ldap:///dc=station2,dc=example,dc=com")(targetattr !="userpasswd ||

mail || dn")(version 3.0;acl "everyone access";allow (read,compare,search)(userdn=

"ldap:///anyone");)

[root@station2 ~]# ldapmodify -x -ZZ -f anon-aci.ldif -W

Enter LDAP Password:

modifying entry "dc=station2,dc=example,dc=com"

<!--[if !supportLists]-->三、<!--[endif]-->语法各项说明

<!--[if !supportLists]-->1、 <!--[endif]-->target:指定了ACI要控制访问的目标属性(集合)或条目(集合)。target可以用DN,一个或多个属性,或者一个filter来定义。它是一个可选项。

target语法是:关键字 <op> 表达式
target关键字表

 

 

如:

<!--[if !supportLists]-->·        <!--[endif]-->一个条目或其子条目作为target:

(target=”ldap:///ou=People,dc=station2,dc=example,dc=com”)

<!--[if !supportLists]-->·        <!--[endif]-->一个条目的属性作为target:

(targetattr=”userPassword || mail || mobile”)

<!--[if !supportLists]-->·        <!--[endif]-->满足过滤规则的所有条目作为target:

(targetfilter=”(postalCode=27606)”

 <!--[if !supportLists]-->2、  <!--[endif]-->version 3.0 这是一个必须的常量字窜,用以识别ACI的版本。

3、name 指定ACI的名称,可以使任意的字窜,只要区别于同一个条目aci属性下的其他ACI,这是一个必须属性。

4、permission 指定权限许可。
权限包括 :read、write(modify)、add、delete、search、compare(测试属性值)、selfwrite、 proxy 或 all,其中要能search必须先满足read;all表示出了proxy之外的所有操作。
权限语法 :allow | deny (权限)

5、bind_rules 绑定规则。绑定规则定义了何人、何时,以及从何处可以访问目录。绑定规则可以是如下规则之一:

• 被授予访问权限的用户、组以及角色

• 实体必须从中绑定的位置

• 绑定必须发生的时间或日期

• 绑定期间必须使用的验证类型

绑定规则语法 :keyword = 或者 != "expression"; (注:timeofday 关键字也支持不等式<、<=、>、>=)。
LDIF 绑定规则关键字表

 

<!--[if !supportLists]-->四、<!--[endif]-->设计ACI要点

<!--[if !supportLists]-->1、 <!--[endif]-->尽量少设计ACI

<!--[if !supportLists]-->2、 <!--[endif]-->尽量将ACI引用在根或者主要的条目上

<!--[if !supportLists]-->3、 <!--[endif]-->避免明确拒绝策略

<!--[if !supportLists]-->4、 <!--[endif]-->尽量保持短属性

<!--[if !supportLists]-->5、 <!--[endif]-->小心使用(尽量不使用)search filter

<!--[if !supportLists]-->6、 <!--[endif]-->注意给ACI定义一个名称

<!--[if !supportLists]-->五、<!--[endif]-->ACI实例

<!--[if !supportLists]-->1.   <!--[endif]-->用户zhangsan 123具有修改其自己的目录条目中所有属性的权限。

aci: (target="ldap:///dc=station2,dc=example,dc=com")(targetattr=*)(version 3.0; acl "zhangsan ACI"; allow (selfwrite)(userdn= "ldap:///uid=zhangsan123,ou=People,dc=station2,dc=example.com,dc=com");)

#该策略应用在根条目上

 

<!--[if !supportLists]-->2.   <!--[endif]-->允许 Engineering Admins 组的成员修改 Engineering 业务类别中所有条目的 departmentNumber 和 manager 属性

aci:(targetattr="departmentNumber || manager")(targetfilter="(businessCategory=Engineering)") (version 3.0; acl "eng-admins-write"; allow (write) groupdn ="ldap:///cn=Engineering Admins, dc=station2,dc=example,dc=com";)

 

<!--[if !supportLists]-->3.   <!--[endif]-->允许匿名用户对o=NetscapeRoot下的条目读取和搜索 aci:(targetattr="*")(targetfilter=(o=NetscapeRoot))(version 3.0; acl "Default anonymous access"; allow (read, search) userdn="ldap:///anyone";)

 

<!--[if !supportLists]-->4.   <!--[endif]-->向所有经过验证的用户授予对整个树的读取访问,可以在dc=example,dc=com 节点创建下列 ACI:

 aci:(version 3.0; acl "all-read"; allow (read)userdn="ldap:///all";)

 

<!--[if !supportLists]-->5.   <!--[endif]-->允许对整个 example.com 树进行匿名读取和搜索访问,可以在dc=example,dc=com 节点创建下列 ACI:

aci:(version 3.0; acl "anonymous-read-search";allow (read, search) userdn = "ldap:///anyone";)

 

<!--[if !supportLists]-->6.   <!--[endif]-->授予Administrators 组对整个目录树写入的权限,则可以在 dc=example,dc=com 节点创建下列 ACI:

aci:(version 3.0; acl "Administrators-write"; allow (write) groupdn=ldap:///cn=Administrators,dc=station2,dc=example,dc=com;)


 

你可能感兴趣的:(职场,LDAP,休闲,rhca)