动态访问控制技术,是Windows Server 2012中提供的新功能,可以帮助管理员更好地设置文件访问权限。例如,在文件服务器中,存在大量的共享文件夹,使用NTFS权限管理机制,虽然可以控制不同用户对这些文件夹的访问权限,但使用传统的方法配置权限时,往往会面临一些比难以实现的情况。依靠动态访问控制(简称 DAC,即 Dynamic Access Control)功能,和NTFS管理机制巧妙结合,可以更加灵活地设置访问权限。
用户的属性信息有很多,仅仅通过域账户管理窗口,只能看到中文名称(例如“部门”),在实际配置各种DAC规则时,使用的是英文名称。查看的方法是运行ADSI编辑器,在左侧的“ADSI编辑器”项右键菜单上点击“连接到”,在连接设置窗口中选择“选择一个已知命名上下文”项,在列表中选中“默认命名上下文”项,点击“确定”,在左侧可以显示所有的OU项目。选择对应的OU,在右侧显示其中包含的相关账户名。选择目标账户名,在属性窗口“属性编辑器”面板中的“值”列中,可以查看所有的属性值,就会看到与之对应的英文名称了。
图1 开启KDC控制选项
启用动态访问控制时,需要执行带有属性信息的身份验证。为此,需要在DC上打开组策略管理器,在左侧选择“林→域→某域名”项,在右键菜单上点击“在这个域中创建GPO并在此处链接”项,输入名称(例如“opendac”),点击“确定”创建该GPO。在该GPO的右键菜单上点击“编辑”项,在组策略编辑窗口打开“计算机配置→策略→管理模板→系统→KDC”项,在右侧双击“KDC支持声明,符合身份验证 和Kerberos Armoring”项,在打开窗口(如图1)中选择“已启用”项,在其下的选项列表中选择“支持”项,表示支持用于动态访问控制的声明和符合身份验证以及Kerberos Armor感知的客户端计算机,将使用该功能接收Kerberos身份验证消息。
在DC上打开Active Directory管理中心窗口,在左侧选择“动态访问控制”项,其中的“Central Access Policies”项主要功能是创建策略,策略中包含多个规则,通过组策略进行发布,来对客户端进行控制。“Central Access Rules”项的主要作用是创建规则,“Claim Types”项的作用是配置声明,主要针对用户的属性信息进行操作。在DAC中,需要使用到的用户属性,必须先进行声明。例如,选择“Claim Types”项,在右侧列表的右键菜单上点击“新建→声明类型”项,在创建声明窗口中的“选择此声明类型所基于的AD属性”栏中输入所需的属性名(例如“deparment”),支持模糊查询功能。
在搜索列表中选择该属性值后,在“可以为以下类发出此类型的声明”栏中选择“用户”项,表示该声明针对的是用户。在“当用户向此声明类型分配值”栏中选择“已建议以下值”项,点击“添加”,输入与该属性有关的值,例如针对部门声明,可以添加“市场部”、“开发部”、“财务部”等。点击“确定”,创建该声明项目。按照同样的方法,针对“Title”属性创建声明项目,该属性对应的是用户的职位信息,并设置一些建议值,例如“主任”、“专员”、“经理”等。
图2 设置具体的规则条目
在左侧选择“Central Access Rules”项,在右侧的“任务”栏中点击“新建→中心访问规则”项,在创建中心访问规则窗口中的“名称”栏中输入规则名(例如“rules1”),在“权限”栏中选择“将以下权限作为当前权限”项,表示授予目标资源真实的访问权限。点击“编辑”来定义具体的访问规则。在打开窗口中点击“添加”,在权限的高级安全设置窗口(如图2)中点击“选择主题”链接,在选择窗口中输入“Domain users”并将其导入,表示该规则针对域中所有的用户。在“基本权限”栏中可以设置合适的权限,包括完全控制、修改、读取和执行、读取、写入、特殊权限等,默认选择读取,读取和执行。这里选择“完全控制”,点击“添加条件”链接,来设置条件限制访问,只有当满足预设的条件后,才授予主体指定的权限。
在条件栏中第一个列表中选择“用户”,第二个列表中选择“deparment”,即上述定义的声明项,在第三个列表中选择“等于”,在第四个列表中选择“值”,在第五个列表中显示上述预设的属性值,例如选择“开发部”等。这样,只有部门属性为开发部的用户可以拥有以上权限。根据需要可添加更多的条件项目,不同的条件之间连接符包括And和Or。默认情况下,使用的是AND连接符,表示必须满足所有的条件。例如再建立一个条件,在条件栏中第一个列表中选择“用户”,第二个列表中选择“title”,即上述定义的声明项,在第三个列表中选择“等于”,在第四个列表中选择“值”,在第五个列表中显示上述预设的属性值(例“经理”)。点击确定持配置信息。
仅仅创建规则是不够的,还需要将其封装在策略中。在左侧选择“Central Access Policies” 项,在右侧点击“新建→中心访问策略”项,在打开窗口中输入该策略的名称(例如“policy1”),在“成员中心访问规则”栏中点击添加按钮,将上述规则添加进来。在DC上打开组策略管理器,在左侧选择“林→域→某域名”项,在右键菜单上点击“在这个域中创建GPO并在此处链接”,输入名称(例如“Deploy”),点击确定创建该GPO。在该GPO的右键菜单上点击“编辑”项,在组策略编辑窗口打开“计算机配置→策略→Windows设置→安全设置→文件系统→中心访问策略”项,在右键菜单上点击“管理中心访问策略”项,在打开窗口左侧找到上述策略项,点击添加将其导入到“适用的中央访问策略”列表中,点击确定按钮即可。
接下来为不同的部门分配所需的访问权限,例如在域中的某台文件服务器(例如名称为“fileserver1”)上打开CMD窗口,执行“gpupdate /force”命令,来刷新组策略。选择某个共享文件夹,在其属性窗口中的“安全”面板中点击高级按钮,在打开窗口中会出现“中央策略”面板,在“中央策略”列表中显示上述创建的策略项目(例如“policy1”),在“应用于”列表中选择应用对象,可以根据实际需要进行选择。例如选择“此文件夹和文件”项,表示针对本文件夹和其中的文件使用预设的策略,对子文件夹则无效。
在“此策略包含以下规则”栏中显示该策略包含的所有规则,在扩展面板中显示具体的权限条目。点击应用按钮,保存配置信息。对于用户来说,访问共享文件夹的权限会受到共享权限和NTFS安全权限双重控制的,对于使用DAC实现动态控制来说,应该将共享权限设置为针对Everyone开启完全控制,才能使其受到DAC的有效管控。这样,对于该共享文件夹来说,只有合乎条件的部门以及职位的用户,才可以按照预定的权限对其进行操作,其余的用户是没有这些权限的。
在该共享目录的属性窗口中打开“有效访问”面板,点击“选择用户”链接,输入目标域账户。点击“查看有效访问”按钮,在列表中就会显示该账户对该目录拥有的权限。具体使用时,可以在客户端以域用户身份登录,对该文件服务器进行访问,如果该用户属性值中的部门属于财务部,而且职位为经理的话,就可以对目标共享文件夹拥有完全控制的权限。当然,按照以上配置,其权限范围仅包括该共享文件夹和其中的文件,对其中的子文件夹是没有完全控制权的。
除了使用DAC控制用户的属性外,还可以对资源属性进行控制。例如共享目录是最常用的资源,其属性同样可以进行设定,例如属于哪个部门,重要性级别等。在DC上的Active Directory管理中心窗口左侧选择“动态访问控制→Resource Properties”项,在右侧右侧列表显示资源的所有属性(如图3),例如选择“Deparment”项,点击“任务”栏中的“启用”项,就可以启动部门这一资源属性。选择“Confidentiality”项,点击“启用”项,可以启用重要性级别这一属性。选定好了资源属性项目后,之后需要将其分发到所有的文件服务器上。在左侧选择“Resource Property Lists”项,在“任务”栏中点击“添加资源属性”项,在打开窗口中选择“Deparment”和“Confidentiality”项,点击“>>”按钮,将其添加进来。
在文件服务器上必须预先安装特定的组件,在服务器管理器中点击“添加角色和功能”项,在角色列表中打开“文件和存储服务→文件和iSCSI服务”分支,选中“文件服务器资源管理器”项来安装组件。执行“gpupdate /force”命令刷新组策略。打开文件服务器资源管理器窗口,在左侧选择“分类管理→分类属性”项,在右侧可以显示上述两个资源属性项目。选中某个共享目录,在其属性窗口中的“分类”面板中也会显示上述两个资源属性项目。选择“Confidentiality”项,在底部列表中选择“High”项,将其重要性设置为高。选择“Deparment”项,在底部列表选择具体的部门类别,例如“Finance”等。
图3 激活所需的资源属性项目
在DC上 的Active Directory管理中心左侧选择“动态访问控制→Central Access Rules”项,在右侧选择上述名为“rules1”的规则,点击“属性→编辑”,显示已经存在的条目,选择上述创建的规则条件项目,点击“编辑→添加条件”链接,继续添加控制项目,在新增条件栏中第一个列表中选择“资源”,第二个列表中显示设定好的资源项目,例如选择“Confidentiality”。
在第三个列表中选择“等于”,在第四个列表中选择“值”,在第五个列表中显示上述预设的属性值,例如选 择“High”。 点 击“添 加条件”链接,在新增条件栏中第一个列表中选择“资源”,第二个列表中显示设定好的资源项目,例如选择“Department”。在第三个列表中选择“等于”,在第四个列表中选择“值”,在第五个列表中选择“财务部”。点击确定按钮,保持配置信息。
在文件服务器上执行“gpupdate /force”命令,来刷新组策略。选择某个共享文件夹,在属性窗口中的“安全”面板中点击高级按钮,在打开窗口中会出现“中央策略”面板,在其中的“中央策略”列表中显示上述创建的策略项目(例如“policy1”),在“应用于”列表中选择应用对象,在“此策略包含以下规则”栏中显示该策略包含的所有规则,在其扩展面板中显示具体的权限条目。点击应用按钮,保存配置信息。这样,只有满足以上条件的域账户,才能访问属性符合条件的共享目录。当然,还可以针对设备属性,来配置DAC控制规则,具体的方法并不复杂。