写点什么

Windows Server 2012 中的动态访问控制(Dynamic Access Control)

  • 2013-01-28
  • 本文字数:1973 字

    阅读完需:约 6 分钟

动态访问控制(Dynamic Access Control)是 Windows Server 2012 中的一组功能,用于管理在活动目录组(Active Directory Groups)之上的身份验证与授权。动态访问控制关注以下四个场景:

  • 数据分级
  • 基于表达式的访问条件
  • 基于表达式的审核
  • 加密

动态访问控制中有五个关键组件一起工作,服务于上述场景:

  • 基于表达式的访问控制列表
  • 用户与设备声明
  • 文件分类基础架构
  • 中心访问与审核策略
  • 拒绝访问帮助

用户与设备声明

用户声明是关于用户的属性,例如他们在那个部门工作。同样的,物理设备也有自身关联的声明。这可以用于保护敏感信息不会被暴露给未被信任的机器,即使在用户被允许访问文件的情况下。

声明支持多种数据类型,包括字符串型,布尔型和整型。

基于表达式的访问控制列表(Access Control Lists ,ACL)

基于表达式的访问控制列表作用于用户声明,设备声明和资源属性上。

表达式包含两部分,适用范围(applicability )和权限。适用范围检查通常针对资源属性,例如“Resource.SecurityLevel = Secret”。如果这一表达式返回 true,那么权限表达式将会评估用户 / 设备对是否可以访问资源。继续上面的例子,我们会使用以下表达式“(User.SecurityClearance = TopSecret or User.SecurityClearance = Secret) and (Device.Location = SecureLab)”。

基于表达式的访问控制列表也扩展了现有的基于组的策略。以前对于组而言,并没有“与(AND)”这一运算符。如果一个用户必须在两个或两个以上组才能访问某一资源,那么必须要新建一个组代表那些用到的组才行。这一“组膨胀”问题在许多拥有数十或数百站点的大型公司中是主要问题。现在,只需要写一个表示“用户即在组 A 也在组 B”的表达式就可以了。

用户和开发者可以用多种不同的方法来管理基于表达式的访问控制列表,包括 AddConditionalAce API,PowerShell 或者 LDAP。

文件分类基础架构(File Classification Infrastructure,FCI)

文件分类基础架构用于将资源属性指派给文件。FCI 支持内置分类和第三方分类。在 Windows Server 2008 R2 中,文件分类器是基于一个定时器运行,通常是在晚上。在 Windows Server 2012 中,文件分类器是近实时(near-real time)运行的。在创建文件与将其分类之间仍然存在少许延迟,这使得本地权限也非常重要。

FCI 的另一个变化是分类信息的存放地。先前它是放在次级文件流中。这意味着任何对这个文件有写权限的人都可以编辑它。在 Windows Server 2012 中这已经被移入文件访问控制列表。文件分类的列表存在活动目录中。

中心访问与审核策略

中心访问策略(Central Access Policy,CAP)将基于表达式的访问控制与文件分类相结合。这允许 IT 部门设置高级规则,例如财务文档(用 FCI 分类)只有财务部门的用户并且在项目组中才能访问。这些规则通过组策略推送到文件服务器。

中心访问策略检查是在共享访问控制列表(share ACL)检查之后。如果 CAP 规则通过了,那么 NTFS 文件系统的本地文件访问控制将进行检查。

为了减少由于错误配置安全设置引发的问题,中心访问策略可以分阶段配置。这使得信息安全经理可以发现谁对某一文件失去了访问权限,并找出哪些规则引发了问题。

新 Kerberos 令牌

Kerberos 仍旧是活动目录机器间声明流动的主要方式。如果客户端使用 Windows 8,那么令牌中将带有用户声明、设备组和设备声明的信息。

如果用户使用 Windows 7,OS X 或者其他不支持 Kerberos 这一扩展的操作系统,那么在身份验证过程中会有额外的步骤。在激活情况下,文件服务器能够向活动目录服务器查询这些缺失的声明信息。这会在延迟和网络带宽上带来一些开销。

新 Kerberos 令牌的另一个功能是混合身份的概念。这适用于那些单一的用户帐户没有足够的权限去访问所有需要的文件的场景。混合令牌也包含了 SAML 信息,用于访问那些基于云的系统。

必须小心避免“票证膨胀(ticket bloat)”,这一问题是由在用户的 Kerberos 票证中包含过多组和声明引起的。为了减少票证膨胀的影响,声明和组都是被压缩过的。此外,Kerberos 令牌的最大大小增加到了 48K。

拒绝访问帮助

简而言之,拒绝访问帮助协助用户找出为什么他们不能访问给定的资源。它能够做这样一些事,例如提醒用户插入物理口令,告诉他们当前违反了哪条访问规则。也能够配置它向资源所有者发送一封电子邮件,这样他们的访问请求能够得到所有者的复核,并可能被批准。

部署

添加资源属性只需要一个活动目录的更新和一台 Windows Server 2012 文件服务器。用户声明和中心访问策略需要 Windows Server 2012 域控制服务器。设备声明要求你的客户端运行于 Windows 8 上。

查看英文原文 Dynamic Access Control in Windows Server 2012


感谢贾国清对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-01-28 21:343357

评论

发布
暂无评论
发现更多内容

Kafka.07 - 性能优化介绍

insight

kafka 2月春节不断更

揭秘京东城市时空数据引擎—JUST如何助力交通流量预测

京东科技开发者

JUST 流量预测

可能是Java Stream的最佳实践(二)

ES_her0

28天写作

Centos7配置librdkafka运行时

happlyfox

Centos 7 28天写作 2月春节不断更

Oracle sqlldr快速导入和sqluldr2快速导出

阳光下、慵懒的熊

数据库

高手来啦!十八般武艺保护你的Web应用

云计算

工作日志2-23

技术骨干

批量下载,我有妙解~

Viktor

JavaScript iframe 跨域

魔改出一个 Encoder | Rust 学习笔记(一)

李大狗

区块链 rust 入门

程序员成长第十二篇:做好项目计划

石云升

项目管理 程序员 28天写作 2月春节不断更

处理XML数据应用实践

华为云开发者联盟

xml 数据库 数据 XML文档 GaussDB(DWS)

【LeetCode】转置矩阵Java题解

Albert

算法 LeetCode 28天写作 2月春节不断更

产品0期 - 第五周作业

曾烧麦

产品训练营

技术干货 | 趣谈哈希表优化:从规避 Hash 冲突到利⽤ Hash 冲突

百度开发者中心

算法 数据结构和算法

【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦

华为云开发者联盟

sql 数据仓库 数据

开工来面试了几十个人,一言难尽

yes

面试

厘清 I/O 模型

sakila

网络编程 I/O

LeetCode题解:718. 最长重复子数组,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

技术干货 | 中间件技术在百度云原生测试中的应用实践

百度开发者中心

底层技术 #技术干货#

第一篇文章

棉花糖

Linux 入门篇 —— 重定向与管道符

若尘

Linux 管道符 linux开发

基于matlab的控制系统与仿真4-判断系统稳定性

AXYZdong

matlab 2月春节不断更

教你如何在Python中读,写和解析CSV文

华为云开发者联盟

Python csv

使用Kong作为微服务网关

行者AI

kong

华为云“网红”语言Python课程来啦!

华为云开发者联盟

Python

谁手握账本?趣讲 ZK 的内存模型

HelloGitHub

Java zookeeper ZooKeeper原理

揭开《钢铁侠》AI管家贾维斯神秘面纱的扛鼎之作!

博文视点Broadview

话题讨论 | 在中国程序员工作是青春饭吗?

happlyfox

话题讨论 2月春节不断更 话题王者

腾讯位置服务开发应用

我是哪吒

28天写作 2月春节不断更 腾讯地图 腾讯位置服务开发应用 腾讯位置

新思科技静态应用安全测试帮助Cryptsoft公司提高软件安全和质量水平

InfoQ_434670063458

云原生2.0时代:企业更应了解一下容器安全

华为云开发者联盟

容器 云原生 安全 漏洞

Windows Server 2012 中的动态访问控制(Dynamic Access Control)_DevOps & 平台工程_Jonathan Allen_InfoQ精选文章