代码改变世界

Active Directory 中的权限访问控制

2012-11-23 13:38  雪中风筝  阅读(1462)  评论(0编辑  收藏  举报

本文从三个方面介绍AD中的权限访问控制,1、介绍AD中额权限访问控制。2、介绍AD中的权限访问控制工具,3、权限访问控制工具的使用示例

AD中的权限访问控制

  管理员通过AD中的权限访问控制来控制其他对象对于AD中安全对象的访问。在AD中通过设置不同对象的访问级别和不同的权限从而达到在对象级别管理对象的访问权限。和AD对象权限设置有关的一些词汇有:

  安全描述符(security descriptor)

  对象继承(object inheritance)

  用户认证(user authentication)

Security descriptors

  访问控制权限被分配给共享的对象,通过这种方式AD对象之间就可以相互访问和使用。什么是共享对象呢?所谓共享对象或者说是共享资源就是自网络上可以被多个用户或者多个对象访问的资源,比如:文件、打印机、文件夹或者服务等等。不管是共享对象或者AD对象都将访问控制权限存储在安全描述符(SD)中,一个安全描述符包括两个访问控制列表(access control lists),这两个ACLs主要用来给每个共享对象分配和跟踪安全信息。他们分别是:随机访问控制列表(DACL)和系统访问控制列表(SACL)

  随机访问控制列表(DACLs): DACLs主要的作用是存储那些对某些对象具有访问权限和拒绝权限的用户和组。如果DACls中没有包含用户或者组,那么这个用户或者组中的成员就不能访问此对象。也就是说此对象拒绝这些用户或者组中的用户访问。默认情况下,DACLs被对象的所有者或者创建者所拥有,并且包含了控制用户访问权限的访问控制项(ACEs)。

System access control lists (SACLs)

  系统访问法控制列表主要用来指出那些你想要审核的用户和组,什么时候这些用户或者组中的用户访问了此对象,成功还是失败。系统访问控制列表默认情况下被SACLs的创建者或者所有这所拥有,他也包含了访问控制项(ACEs)它主要的作用是用来记录被赋予指定权限的用户是否成功或者失败访问了此对象。

 

可以使用AD用户和计算机管理工具来查看DACLs和SACls,在视图菜单上点击高级选项,这个时候在AD对象的属性中会出现安全选项卡。当然你也可以通过DACls工具来管理AD对象的访问控制权限。

 

DACLs工具

  DACls 命令行工具dscals可以查看或者修改AD中的安全对象的权限信息。在windows 2003 系统中这个工具的安装文件存在与安装磁盘的supporttools 目录下,在windows 2008 及更高系统中,不在单独提供这个工具的安装文件,而是已经内置在系统中,用户只需要打开命令提示符,输入dsacls 就可以查看到这个命令的帮助信息,如下图:

这个工具可以查看AD对象的权限信息并且修改对象的权限信息。

语法:

  dsacls "[\\<Computer>\]<ObjectDN>" [/A] [/D <PermissionStatement> [<PermissionStatement>]...] [/G <PermissionStatement> [<PermissionStatement>]...] [/I:{T | S | P}] [/N] [/P:{Y | N}] [/R {<User> | <Group>} [{<User> | <Group>}]...] [/S [/T]] [/?]

具体的使用方法可以参考以下文档:

http://technet.microsoft.com/en-us/library/cc771151(v=WS.10).aspx#BKMK_examples

比如可以通过如下语句,给dsacl这个对象授予用户uctest\dacaltest读写的权限。

C:\Users\administrator.UCTEST>dsacls "CN=dsacl,OU=杭州分行,OU=uctestRoot,DC=ucte
st,DC=com" /G uctest\dscaltest:GRGW;

 

我们可以通过这个工具完全大部分的AD对象的权限操作,具体的命令参数细节请参考上边的文档。这里就不赘述了。

 

先写到这里吧,有时间的话把通过SDS编程实现用户权限的管理补充上来。

  

参考文档:

  http://technet.microsoft.com/en-us/library/cc785913(v=WS.10).aspx

  http://www.retherfords.com/blogs/CoryRetherford/Lists/Posts/Post.aspx?ID=83

  http://technet.microsoft.com/en-us/library/cc771151(v=WS.10).aspx#BKMK_examples