
Entiendo que tanto las carpetas NTFS como los objetos AD usan descriptores de seguridad y DACL para verificar el acceso de usuarios/procesos. MS Learn: cómo funciona la verificación de acceso
Sin embargo, ¿cómo resuelve la verificación de acceso las ACE para grupos AD anidados? Por ejemplo:
- Al grupo AD
AD-Parent
se le conceden derechos de modificación enF:\Restrict
- El grupo AD
AD-VIPs
es hijo deAD-Parent
- El usuario
vip
es miembro deAD-VIPs
Mi entendimiento es que
vip
El descriptor de seguridad tendrá una ACE que hace referenciaAD-VIPs
yF:Restrict
DACL tendrá una ACE que se refiere aAD-Parent
¿Cómo y qué proceso en Windows encuentra la cadena `vip -> AD-VIPs -> AD-Parent' y otorga acceso?
Respuesta1
Durante el inicio de sesión/autenticación/verificación de autorización, elseguridadlas membresías de grupo se agregan a la parte del Certificado de acceso privilegiado (PAC) del token Kerberos. Esto incluye grupos anidados.
Cuando se accede a una carpeta, el host con el recurso (servidor de archivos en este caso) compara los SecurityIdentifiers en la ACL con los SecurityIdentifiers en el PAC del token Kerberos. Si hay una coincidencia, se concede el acceso.
https://learn.microsoft.com/en-us/windows/win32/adschema/a-tokengroups
"Un atributo calculado que contiene la lista de SID debido a una operación de expansión de membresía de grupo transitivo en un usuario o computadora determinado. Los grupos de tokens no se pueden recuperar si no hay un catálogo global presente para recuperar las membresías inversas transitivas".
Respuesta2
Comencemos desde el enlace que proporcionaste (el énfasis es mío):
El sistema compara al administrador de cada ACE con los administradores identificados en el token de acceso del hilo.Un token de acceso contiene identificadores de seguridad (SID) que identifican al usuario y las cuentas del grupo al que pertenece el usuario.
De hecho, "las cuentas de grupo a las que pertenece el usuario" se toman del ticket Kerberos que el usuario recibió cuando inició sesión. El ticket contiene los SID de todos los grupos a los que pertenece el usuario, independientemente de si el grupo está anidado. dentro de otro grupo o no.
Específicamente, para responder a tu pregunta:
¿Cómo y qué proceso en Windows encuentra la cadena `vip -> AD-VIPs -> AD-Parent' y otorga acceso?
Esta tarea la realiza el controlador de dominio al generar un ticket de concesión de tickets (TGT) (normalmente, cuando el usuario inicia sesión). El TGT contiene los SID de todos los grupos a los que pertenece el usuario.
Puedes hacer un experimento y ver un poco de eso conExplorador de procesos: Inicie Process Explorer, haga doble clic en un proceso iniciado por un usuario de dominio (por ejemplo, notepad.exe), haga clic en la pestaña Seguridad y aquí podrá ver la membresía del grupo incluso si los grupos están anidados.