
我了解 NTFS 資料夾和 AD 物件都使用安全描述符和 DACL 來檢查使用者/進程訪問 MS Learn - 存取檢查的工作原理
但是,存取檢查如何解析嵌套 AD 群組的 ACE?例如:
- AD群組
AD-Parent
被授予修改權限F:\Restrict
- AD 組
AD-VIPs
是以下組的子組AD-Parent
- 使用者
vip
是以下組織的成員AD-VIPs
我的理解是
vip
安全描述符將有一個 ACE 引用AD-VIPs
和F:Restrict
DACL 將有一個 ACE 指AD-Parent
Windows 中的哪個進程如何以及哪個進程找到「vip -> AD-VIPs -> AD-Parent」鏈並授予存取權限?
答案1
在登入/認證/授權檢查期間,安全群組成員身分被新增至 Kerberos 令牌的特權存取憑證 (PAC) 部分。這包括嵌套組。
存取資料夾時,擁有資源的主機(在本例中為檔案伺服器)會將 ACL 中的 SecurityIdentifiers 與 Kerberos 令牌的 PAC 中的 SecurityIdentifiers 進行比較。如果匹配,則授予存取權限。
https://learn.microsoft.com/en-us/windows/win32/adschema/a-tokengroups
“由於給定使用者或計算機上的傳遞組成員資格擴展操作而包含 SID 列表的計算屬性。如果不存在用於檢索傳遞反向成員資格的全域目錄,則無法檢索令牌組。”
答案2
讓我們從您提供的連結開始(強調我的):
系統將每個 ACE 中的受託者與執行緒的存取權杖中標識的受託者進行比較。存取權杖包含標識使用者和使用者所屬群組帳戶的安全識別碼 (SID)。
事實上,「使用者所屬的群組帳戶」取自使用者登入時收到的 Kerberos 票證。
具體來說,回答你的問題:
Windows 中的哪個進程如何以及哪個進程找到「vip -> AD-VIPs -> AD-Parent」鏈並授予存取權限?
此任務由網域控制器在產生票證授予票證 (TGT) 時(通常是在使用者登入時)執行。 TGT 包含使用者所屬的所有群組的 SID。
你可以做一個實驗並查看其中的一些內容流程瀏覽器:啟動 Process Explorer,雙擊由網域使用者啟動的進程(例如 notepad.exe),按一下「安全性」選項卡,即使群組是巢狀的,您也可以在此處看到群組成員身分。