
Я понимаю, что и папки NTFS, и объекты AD используют дескрипторы безопасности и DACL для проверки доступа пользователей/процессов. MS Learn - Как работает проверка доступа
Однако, как проверка доступа разрешает ACE для вложенных групп AD? Например:
- Группе 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
Во время проверки входа в систему/аутентификации/авторизациибезопасностьЧленство в группах добавляется в часть Privilege Access Certificate (PAC) токена Kerberos. Это включает вложенные группы.
При доступе к папке хост с ресурсом (в данном случае файловый сервер) сравнивает SecurityIdentifiers в ACL с SecurityIdentifiers в PAC токена Kerberos. Если есть совпадение, доступ предоставляется.
https://learn.microsoft.com/en-us/windows/win32/adschema/a-tokengroups
«Вычисляемый атрибут, содержащий список идентификаторов безопасности, полученных в результате операции расширения транзитивного членства в группе для данного пользователя или компьютера. Группы токенов не могут быть получены, если отсутствует глобальный каталог для получения транзитивного обратного членства».
решение2
Давайте начнем с предоставленной вами ссылки (выделено мной):
Система сравнивает доверенное лицо в каждой записи ACE с доверенными лицами, указанными в токене доступа потока.Токен доступа содержит идентификаторы безопасности (SID), которые идентифицируют пользователя и групповые учетные записи, к которым принадлежит пользователь.
Фактически, «групповые учетные записи, к которым принадлежит пользователь» берутся из билета Kerberos, который пользователь получил при входе в систему. Билет содержит идентификаторы безопасности (SID) всех групп, к которым принадлежит пользователь, независимо от того, вложена ли группа в другую группу или нет.
Конкретно отвечая на ваш вопрос:
Как и какой процесс в Windows находит цепочку `vip -> AD-VIPs -> AD-Parent' и предоставляет доступ?
Эта задача выполняется контроллером домена при генерации билета на выдачу билетов (TGT) (обычно, когда пользователь вошел в систему). TGT содержит SID всех групп, к которым принадлежит пользователь.
Вы можете провести эксперимент и увидеть немного этого.Исследователь процессов: Запустите Process Explorer, дважды щелкните процесс, запущенный пользователем домена (например, notepad.exe), щелкните вкладку «Безопасность», и здесь вы сможете увидеть членство в группах, даже если группы вложены.