資源描述:
《openldap用acl控制訪問(wèn)權(quán)限》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、OpenLDAP:用ACL控制訪問(wèn)權(quán)限說(shuō)明:這段時(shí)間我在學(xué)習(xí)Openldap的知識(shí),關(guān)于訪問(wèn)控制權(quán)限這一塊遇上較大的麻煩。我在網(wǎng)上看到了一些人的帖子,有些寫的不錯(cuò),有些寫的不全,還有些完全是照抄別人的,還不注明出處。因此我把我搜集到的東西整理出一個(gè)文檔,獻(xiàn)給各位正在學(xué)習(xí)openldap的朋友,我的初衷是回饋社會(huì),支持免費(fèi)和開源,水平有限,諸多包涵。我所引用到的東西,我都將注明出處,感謝提供我信息的人,我想說(shuō),youarethegreatest。第一部分語(yǔ)法綜述1.用ACL控制授權(quán)我們?cè)贚DAP中創(chuàng)建目錄樹后,最感興趣的就是如何控制用戶在目錄樹中的權(quán)限(讀寫)。誰(shuí)在什么條件下有記錄權(quán)限,我們有權(quán)
2、限看到哪些信息。ACL(AccessControlList)訪問(wèn)控制列表就是解決用戶權(quán)限問(wèn)題的。2.我們要把ACL寫在哪里?ACL寫在OpenLDAP的服務(wù)端全局配置文件slapd.conf中,如下這段即為其指令:#accesstodn.base=""by*read#accesstodn.base="cn=Subschema"by*read#accessto*#byselfwrite#byusersread#byanonymousauth也可以寫在一個(gè)單獨(dú)的文件中,如access.conf,然后在全局配置文件slapd.conf中調(diào)用,在配置文件中引入這個(gè)文件即可,如下:include/etc
3、/openldap/access.confinclude后面的路徑為該文件的放置地址。3.ACL語(yǔ)法基礎(chǔ)怎么看懂ACL指令?首先看下ACL訪問(wèn)指令的格式:################################################accessto[resources]by[who][typeofaccessgranted][control]by[who][typeofaccessgranted][control]#More'by'clauses,ifnecessary....################################################指令
4、中包含1個(gè)to語(yǔ)句,多個(gè)by語(yǔ)句。這個(gè)指令的大體意思是,通過(guò)accessto約束我們?cè)L問(wèn)的范圍(resources),通過(guò)by設(shè)定哪個(gè)用戶(who)獲取對(duì)這個(gè)約束范圍有什么權(quán)限(typeofaccessgranted),并控制(control)這個(gè)by語(yǔ)句完成后是否繼續(xù)執(zhí)行下一個(gè)by語(yǔ)句或者下一個(gè)ACL指令。Accessto[resources]resources可以有多種形式,如DN,attrs,F(xiàn)ilters.以下即詳細(xì)說(shuō)明。3.1.通過(guò)約束DN進(jìn)行訪問(wèn)(同層級(jí)訪問(wèn))如下所示,accesstodn="uid=matt,ou=Users,dc=example,dc=com"by*none這個(gè)
5、指令是指訪問(wèn)uid=matt,ou=Users,dc=example,dc=com這個(gè)DN,即把訪問(wèn)的范圍約束在這個(gè)DN中。by*none是指對(duì)于任何人的訪問(wèn)都是拒絕的??傮w的意思就是,任何人都沒(méi)有權(quán)限訪問(wèn)uid=matt,ou=Users,dc=example,dc=com這個(gè)DN,當(dāng)然,服務(wù)器管理員是可以訪問(wèn)的,不然它無(wú)法維護(hù)這個(gè)OpenLDAP中的用戶信息。再來(lái)看一個(gè),accesstodn.subtree="ou=Users,dc=example,dc=com"by*none在這個(gè)例子中,我們用了dn.subtree。在我們的目錄信息樹中,在ou=Users子樹下可能有多個(gè)用戶。舉例來(lái)說(shuō)
6、,DN為uid=matt,ou=Users,dc=example,dc=com就是ou=Users,dc=example,dc=com的子樹,當(dāng)要試圖訪問(wèn)他時(shí),這個(gè)ACL指令就起了作用??傮w的意思是,任何人都沒(méi)有權(quán)限訪問(wèn)ou=Users,dc=example,dc=com以及其子樹的信息。#######################################################################dn.base:RestrictaccesstothisparticularDN.Thisisthedefault,anddn.exactanddn.baselevel
7、aresynonyms(同義詞)ofdn.base.dn.one:RestrictaccesstoanyentriesimmediatelybelowthisDN.dn.onelevelisasynonym.dn.children:Restrictaccesstothechildren(subordinate)entriesofthisDN.Thisissimilartosubtree,excep