授权和访问控制组件

下图说明了授权Windows访问控制过程。 在此图中,主题 (由用户启动) 访问对象(如共享文件夹)的过程。 将用户的访问令牌中的信息与对象的安全描述 (AES) 中的访问控制项进行比较,并做出访问决策。 安全主体的 SID 用于用户的访问令牌和对象的安全描述符中的 AES。

授权和访问控制过程

安全主体与以下组件和技术密切相关:

当线程尝试访问安全对象时,系统将授予或拒绝访问。 如果该对象没有 DACL (自由 访问控制) , 则系统会授予访问权限;否则, 系统会在对象的 DACL 中查找 (AES) 应用于线程的访问控制条目。 对象的 DACL 中的每个 ACE 都指定受信者(可以是用户帐户、组帐户或登录会话)允许或拒绝 的访问权限

DACL

系统将每个 ACE 中的受信者与线程的访问令牌 中标识的受 信者进行比较。 访问令牌包含 标识用户 (组) 标识用户和组帐户的 ID 的安全标识符。 令牌还包含标识 当前登录 会话的登录 SID。 在访问检查期间,系统会忽略未启用的组 SID。 有关已启用、禁用和仅拒绝 SID 的信息,请参阅访问令牌 中的 SID 属性

通常,系统使用 请求 访问的线程的主访问令牌。 但是,如果线程正在模拟其他用户,则系统将使用线程的 模拟令牌

系统会按顺序检查每个 ACE,直到发生以下事件之一:

  • 拒绝访问的 ACE 显式拒绝对线程的访问令牌中列出的受信者之一的任何请求访问权限。
  • 线程访问令牌中列出的受信者允许访问的一个或多个 AES 显式授予所有请求的访问权限。
  • 已检查所有 AES,并且仍有至少一个请求的访问权限未显式允许,在这种情况下,将隐式拒绝访问。

下图显示了对象的 DACL 如何允许访问一个线程,同时拒绝访问另一个线程。

对于线程 A,系统读取 ACE 1 并立即拒绝访问,因为拒绝访问的 ACE 适用于线程的访问令牌中的用户。 在这种情况下,系统不会检查 AES 2 和 3。 对于线程 B,ACE 1 不适用,因此系统将继续访问 ACE 2(允许写入访问)和 ACE 3(允许读取和执行访问权限)。

由于系统在显式授予或拒绝请求的访问权限时停止检查 AES,因此 DACL 中的 AES 顺序非常重要。 请注意,如果示例中的 ACE 顺序不同,则系统可能授予了对线程 A 的访问权限。对于系统对象,操作系统在 DACL 中定义 AES 的首选顺序

线程与安全对象之间的交互

当线程尝试使用安全对象 ,系统会先执行访问检查,然后再允许线程继续。 在访问检查中,系统将线程的访问令牌中的安全信息与对象的安全描述 符 中的安全信息 进行比较

  • 访问令牌包含 标识与 (关联的) ID 的安全标识符。
  • 安全描述符标识对象的所有者,并包含 DACL (的) 。 DACL 包含 AES (访问控制) ,其中每个条目都指定允许或拒绝特定用户或组的访问权限。

系统检查对象的 DACL,从线程的访问令牌中查找应用于用户和组 SID 的 AES。 系统会检查每个 ACE,直到授予或拒绝访问,或者直到没有要检查的 ACE。 可以想象 ,ACL (访问控制) 可能有几个适用于令牌的 SID 的 AES。 如果发生这种情况,则每个 ACE 授予的访问权限都会累积。 例如,如果一个 ACE 授予对组的读取访问权限,而另一个 ACE 授予对作为该组成员的用户的写入访问权限,则用户可以同时拥有对 对象的读取和写入访问权限。

下图显示了这些安全信息块之间的关系:

最新文章

  1. ABP(现代ASP.NET样板开发框架)系列之17、ABP应用层——参数有效性验证
  2. [Android Pro] 关于Android的HTTP客户端的小秘密
  3. SQL Server 本地语言版本
  4. 整型(int)转时间格式字符串及页面long型转时间格式字符串
  5. 【快速选择算法与nth_element函数】【续UVA11300 】
  6. linux ln 命令(转载)
  7. YII框架实现排序
  8. 按指定id顺序查询
  9. Spring Boot 整合 elk
  10. 15个HTML元素方法!
  11. linux的使用以及linux服务器应用的部署
  12. Ext.Js核心函数( 三)
  13. BW中DSO的分类及应用
  14. webuploader 跨域上传demo(还没有写记录一下)
  15. 谨慎使用 FileInfo.Exists 实例方法,而是使用 File.Exists 静态方法替代
  16. 注意字符串的strlen与sizeof的差别
  17. mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
  18. GitHub安装和使用
  19. java web中jsp常用标签
  20. Python爬虫教程-03-使用 chardet 检测编码

热门文章

  1. Cesium中级教程7 - Geometry and Appearances 几何图形和外观
  2. Maven作用及安装
  3. 一劳永逸,解决.NET发布云服务器的时区问题
  4. Vue3.2中的setup语法糖,保证你看的明明白白!
  5. Vue2和Vue3技术整理1 - 入门篇 - 更新完毕
  6. springcloud 实现简单的 消费者和生产者 模式(Restfule 的风格)
  7. 计算机网络-5-10-TCP运输连接管理
  8. EKS助力小白实践云原生——通过k8s部署wordpress应用
  9. 浅谈Java中linkedlist和arraylist区别
  10. 02 前端基础之CSS