Dado un par de usuarios y un privilegio , necesito determinar si un usuario tiene el privilegio en el servidor. Lo siguiente es cierto en mi configuración:
- El servidor es parte de un dominio pero no un controlador de dominio.
- Existen varios dominios con relación de confianza en la infraestructura.
- A veces, los usuarios (locales, de dominio o de un dominio diferente) pueden pertenecer a un grupo local por el mérito de que estén en otro grupo (dominio o local) que pertenece a un grupo local, en lugar de pertenecer al grupo directamente.
Escenario de ejemplo para el último punto:
- Usuario1 pertenece al grupo TeamA en el DominioA
- DomaimA \ TeamA es miembro de DomainB \ SpecialAccess
- DomainB \ SpecialAccess es miembro de DomainB \ DomainAdmins
- Finalmente DomainB \ DomainAdmins pertenecen al grupo local de Administradores
- El grupo de Administradores locales tiene privilegios SeRemoteInteractiveLogonRight
Ahora, si tengo en la entrada DomainA \ User1 y SeRemoteInteractiveLogonRight, necesito llegar a Sí o No. Entonces, abro la Política local en la máquina, noto qué grupos se enumeran a la derecha también me interesa, luego voy a los administradores del servidor y veo qué hay en los miembros del grupo y luego necesito ver qué miembros de cualquier grupo en estos grupos y así.
Tengo el presentimiento de que puede ser más fácil. Estaba realmente emocionado cuando encontré la utilidad AccessChk. Duró tres minutos completos que me llevaron a descubrir que solo enumera la relación directa, por lo que el usuario dentro de un grupo no aparecerá en la lista.
Ahora supongo que sería posible combinar los resultados de AccessChk de alguna manera para poder verificar si un usuario pertenece a alguno de los grupos que AccessChk devuelve, pero dado que no es un dominio único sino varios de ellos estoy No estoy seguro de cómo abordar esto. Además, la salida de AccessChk no parece distinguir entre un grupo y un usuario.
EDITAR : con el espíritu de no caer en la trampa del problema XY, lo que realmente necesito hacer es asegurarme de que en un grupo de servidores no haya cuentas de usuario específicas que se usen como identidades de grupo de aplicaciones IIS que tengan privilegios SeInteractiveLogonRight o SeRemoteInteractiveLogonRight. No tengo ningún problema con la parte de IIS, pero el último paso para verificar una cuenta con un privilegio es algo que me cuesta encontrar una forma sencilla de verificar. También me gustaría automatizar la verificación porque esto es algo que deberá hacerse regularmente.
fuente
Respuestas:
Los tokens de acceso no tienen información sobre derechos, solo sobre privilegios.
Lo que debes hacer es esto:
Lo anterior se basa en la existencia del proceso (y token) correspondiente a la identidad de la cuenta. En su escenario, esto no debería ser un problema. En situaciones en las que esto es un problema, puede intentar usar la búsqueda de Active Directory para el atributo calculado de Grupos de tokens . Este artículo enumera algunos enfoques sobre cómo lograr esto.
fuente