Active Directory域中NTFS文件夹访问检查及嵌套AD组ACE解析机制问询
这个问题问得特别切中要害——很多刚接触AD权限和NTFS联动的朋友都会卡在组嵌套的解析逻辑上,我给你一步步拆解清楚整个过程:
首先得纠正一个小误解:你提到的“vip security descriptor will have an ACE referring to AD-VIPs”表述不太准确。用户作为AD对象,他的安全描述符是用来控制谁能修改他的属性、重置密码这类操作的;而用户的访问令牌(Access Token)才是登录后代表身份的核心凭证,里面包含了用户自身的SID,以及所属的所有直接组和嵌套组的SID——这才是访问检查时的关键依据。
接下来回到你的场景,整个权限验证的流程是这样的:
第一步:登录时的组SID展开
当用户vip登录域的时候,域控制器的Kerberos服务会处理登录请求,它会先查询AD获取vip直接所属的组(也就是AD-VIPs),然后递归解析所有嵌套的父组(这里就是AD-Parent),把这些组的SID全部收集起来,最终生成一个包含用户自身SID、所有直接/嵌套组SID、用户权限等信息的访问令牌,发送给用户的本地计算机。第二步:NTFS访问时的权限检查
当vip尝试访问F:\Restrict的时候,本地的**本地安全授权子系统服务(LSASS)**会接手这个访问请求:- 它先取出vip当前会话的访问令牌,里面已经包含了AD-VIPs和AD-Parent的SID;
- 然后遍历
F:\Restrict的DACL中的每一条ACE:- 对于每一条允许或拒绝的ACE,LSASS会逐一比对访问令牌里的所有SID(用户自身+所有组)是否和ACE里的SID匹配;
- 当匹配到那条给AD-Parent授予Modify权限的ACE时,LSASS就会判定vip拥有对应的权限,允许他进行Modify级别的访问操作。
还有个小细节要注意:如果后续AD里的组嵌套关系发生了变化(比如AD-VIPs被移出AD-Parent),vip需要重新登录才能让访问令牌更新——因为访问令牌是登录时生成的,默认不会实时同步AD里的组变更,除非手动注销重登或者刷新凭证。
备注:内容来源于stack exchange,提问作者Grasshopper

