天天看點

RH423-5 LDAP的ACI

 LDAP的ACI(Access Control Instructions通路控制指南)

一、ACI的特點

1、 繼承性:一個條目會繼承其父條目及其以上條目的aci政策,且繼承政策和自身政策地位平等。

2、 如果拒絕政策與允許政策相沖突時,拒絕優先。

二、ACI文法格式

1、 文法格式: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

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

<b></b>

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

<b>"ldap:///anyone");)</b>

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

Enter LDAP Password:

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

三、文法各項說明

1、 target:指定了ACI要控制通路的目标屬性(集合)或條目(集合)。target可以用DN,一個或多個屬性,或者一個filter來定義。它是一個可選項。

target文法是:關鍵字 &lt;op&gt; 表達式 

target關鍵字表 

<a target="_blank" href="http://blog.51cto.com/attachment/201104/013605109.gif"></a>

如:

·        一個條目或其子條目作為target:

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

·        一個條目的屬性作為target:

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

·        滿足過濾規則的所有條目作為target:

(targetfilter=”(postalCode=27606)”

2、  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 關鍵字也支援不等式&lt;、&lt;=、&gt;、&gt;=)。 

LDIF 綁定規則關鍵字表 

<a target="_blank" href="http://blog.51cto.com/attachment/201104/013621538.gif"></a>

四、設計ACI要點

1、 盡量少設計ACI

2、 盡量将ACI引用在根或者主要的條目上

3、 避免明确拒絕政策

4、 盡量保持短屬性

5、 小心使用(盡量不使用)search filter

6、 注意給ACI定義一個名稱

五、ACI執行個體

1.   使用者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");)

#該政策應用在根條目上

2.   允許 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";)

3.   允許匿名使用者對o=NetscapeRoot下的條目讀取和搜尋 aci:(targetattr="*")(targetfilter=(o=NetscapeRoot))(version 3.0; acl "Default anonymous access"; allow (read, search) userdn="ldap:///anyone";)

4.   向所有經過驗證的使用者授予對整個樹的讀取通路,可以在dc=example,dc=com 節點建立下列 ACI:

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

5.   允許對整個 example.com 樹進行匿名讀取和搜尋通路,可以在dc=example,dc=com 節點建立下列 ACI:

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

6.   授予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";)

本文轉自netsword 51CTO部落格,原文連結:http://blog.51cto.com/netsword/543379

繼續閱讀