ACL实现OpenLDAP的访问控制权限_第1页
ACL实现OpenLDAP的访问控制权限_第2页
ACL实现OpenLDAP的访问控制权限_第3页
ACL实现OpenLDAP的访问控制权限_第4页
ACL实现OpenLDAP的访问控制权限_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用ACL控制访问权限(1)用ACL控制授权我们在LDAP中创建目录树后,最感兴趣的就是如何控制用户在目录树中的权限(读写)。谁在什么条件下有记录权限,我们有权限看到哪些信息。ACL(AccessControlList)访问控制列表就是解决用户权限问题的。我们要把ACL写在哪里?ACL写在OpenLDAP的服务端全局配置文件slapd.conf中,如下这段即为其指令:accesstodn.base=""by*readaccesstodn.base="cn=Subschema"by*read#accessto*byselfwritebyusersreadbyanonymousauth也可以写在一"单独的文件中,如access.conf,然后在全局配置文件slapd.conf中调用,在配置文件中引入这个文件即可,如下:include/etc/openldap/access.confinclude后面的路径为该文件的放置地址。ACL语法基础怎么看懂ACL指令?首先看下ACL访问指令的格式:################################################Tw Tw Tw Tw Twaccessto[resources]by[who][typeofaccessgranted][control]by[who][typeofaccessgranted][control]#More'by'clauses,ifnecessary....################################################kFk^T^TF kFk^T^TF kFk^T^TFa^T^TF kFk^T^TFa^T^TF kF指令中包含1个to语句,多个by语句。这个指令的大体意思是,通过accessto约束我们访问的范围(resources),通过by设定哪个用户(who)获取对这个约束范围有什么权限(typeofaccessgranted),并控制(control)这个by语句完成后是否继续执行下一个by语句或者下一个ACL指令。如果对ACL指令很熟悉的话,可以不必继续往下看,因为以下为详细的指令基础介绍。现在对ACL指令分解成两大部分进行详细说明,一个是accessto指令,一个是by指令。先看看accessto吧。用ACL控制访问权限(2)Accessto[resources]resources可以有多种形式,如DN,attrs,Filters.以下即详细说明。1.通过约束DN进行访问如下所示,accesstodn="uid=matt,ou=Users,dc=example,dc=com"by*none这个指令是指访问uid=matt,ou=Users,dc=example,dc=com这个DN,即把访问的范围约束在这个DN中。by*none是指对于任何人的访问都是拒绝的。总体的意思就是,任何人都没有权限访问uid=matt,ou=Users,dc=example,dc=com这个DN,当然,服务器管理员是可以访问的,不然它无法维护这个OpenLDAP中的用户信息。再来看一个,accesstodn.subtree="ou=Users,dc=example,dc=com"by*none在这个例子中,我们用了dn.subtree。在我们的目录信息树中,在ou=Users子树下可能有多个用户。举例来说,DN为uid=matt,ou=Users,dc=example,dc=com就是ou=Users,dc=example,dc=com的子树,当要试图访问他时,这个ACL指令就起了作用。总体的意思是,任何人都没有权限访问ou=Users,dc=example,dc=com以及其子树的信息。#######################################################################洪此处插播1个知识点dn.base:RestrictaccesstothisparticularDN.Thisisthedefault,anddn.exactanddn.baselevelaresynonymsofdn.base.dn.one:RestrictaccesstoanyentriesimmediatelybelowthisDN.dn.onelevelisasynonym.dn.children:Restrictaccesstothechildren(subordinate)entriesofthisDN.Thisissimilartosubtree,exceptthatthegivenDNitselfisnotrestrictedbytherule.用ACL控制访问权限(3)以上内容意思是,dn.base:约束这个特定DN的访问。他和dn.exact和dn.baselevel是相同的意思。dn.one:约束这个特定的DN第一级子树的访问。dn.onelevel是同义词。dn.children:这个和dn.subtree类似,都是对其以下的子树访问权的约束。不同点在于,这个的约束是不包含自己本身DN。而subtree包含了本身的DN。#######################################################################对于dn的约束条件还可以利用模糊约束,如下:accesstodn.regex="uid=[A,]+,ou=Users,dc=example,dc=com"by*nonedn.regex是用来做匹配(match)用的。这个指令将约束所有uid=(任何值),ou=Users,dc=example,dc=com的DN,其中的任何值是用[A,]+这个符号组合来表示的,他可以代表任何至少有1个字符,且字符当中没有逗号(,)的值。更明确点说,意思就是在ou=Users,dc=example,dc=com这个DN下的所有以uid为属性的一级子树都属于这个约束的范围。2.通过约束attrs访问对于DN的约束大多用在对某个层级的约束,而用attrs的话,就可以跨层级(或者说跨越父类树),通过属性来约束访问的范围。accesstoattrs=homePhoneby*none这个例子意思是,任何人都没有权限访问属性为homePhone的信息。在attrs后面的值可以多个,如accesstoattrs=homePhone,homePostalAddress用ACL控制访问权限(4)如果想约束某个对象类(Objectclass)的所有属性,我们或许可以有这样的形式:accesstoattrs=title,registeredAddress,destinationindicator, 但这个方法太耗时,也难以阅读,显得笨重,以下给出一个好的方法:accesstoattrs=@organizationalPersonby*none用@的方法必须谨慎,这段指令不仅仅约束了organizationalPerson里的属性,也约束了person对象类的属性。为什么?因为organizationalPerson对象类是person的子类,因此,所有person中的属性就当然也是organizationalPerson的属性了。如果想做除了organizationalPerson的其他对象类的约束,可以用!来表示:accesstoattrs=!organizationalPerson也可以加入属性的值,具体约束某个值:accesstoattrs=givenNameval="Matt"这个指令也可以用模糊约束的方法,如下:accesstoattrs=givenNameval.regex="M.*"最后给个一般情况下用到的利用属性约束的例子:accesstoattrs=memberval.children="ou=Users,dc=example,dc=com"by*none1.通过Filters访问Filters提供一种支持条目记录匹配的方法,如下:accesstofilter="(objectClass=simpleSecurityObject)"by*none这表示我们可以约束所有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论