Étant donné une paire d'utilisateurs et un privilège, je dois déterminer si un utilisateur a le privilège sur le serveur. Ce qui suit est vrai dans ma configuration:
- Le serveur fait partie d'un domaine mais pas un contrôleur de domaine
- Il existe plusieurs domaines avec une relation de confiance dans l'infrastructure
- Parfois, les utilisateurs (local, domaine ou d'un autre domaine) peuvent appartenir à un groupe local en raison de leur mérite d'être dans un autre groupe (domaine ou local) qui appartient à un groupe local, par opposition à appartenir directement au groupe.
Exemple de scénario pour le dernier point:
- L'utilisateur 1 appartient au groupe TeamA dans le domaine A
- DomaimA \ TeamA est membre de DomainB \ SpecialAccess
- DomainB \ SpecialAccess est membre de DomainB \ DomainAdmins
- Enfin, DomainB \ DomainAdmins appartient au groupe Administrateurs local
- Le groupe Administrateurs locaux a le privilège SeRemoteInteractiveLogonRight
Maintenant, si j'ai sur l'entrée DomainA \ User1 et SeRemoteInteractiveLogonRight, je dois arriver à une réponse Oui ou Non. Donc j'ouvre la stratégie locale sur la machine, note quels groupes sont listés contre la droite, je m'intéresse aussi, puis va aux gestionnaires de serveurs et vois ce que les membres du groupe et puis j'ai besoin de voir quels membres de n'importe quel groupe dans ces groupes etc.
J'ai l'intuition que cela peut être plus facile. J'étais vraiment excité quand j'ai trouvé l' utilitaire AccessChk. Cela a duré trois minutes entières, ce qui m'a pris pour découvrir qu'il ne répertorie que les relations directes, donc l'utilisateur au sein d'un groupe ne sera pas répertorié.
Maintenant, je suppose qu'il serait possible de combiner les résultats d'AccessChk pour que je puisse vérifier si un utilisateur appartient à l'un des groupes renvoyés par AccessChk, mais étant donné qu'il ne s'agit pas d'un seul domaine mais de plusieurs d'entre eux, je suis ne sais pas comment aborder cela. La sortie AccessChk ne semble pas non plus faire la distinction entre un groupe et un utilisateur.
EDIT : Dans l'esprit de ne pas tomber dans le piège des problèmes XY, ce que je dois vraiment faire est de m'assurer que sur un groupe de serveurs aucun compte d'utilisateur spécifique utilisé comme identités de pool d'applications IIS ne dispose des privilèges SeInteractiveLogonRight ou SeRemoteInteractiveLogonRight. Je n'ai aucun problème avec la partie IIS, mais la dernière étape de vérification d'un compte par rapport à un privilège est quelque chose que j'ai du mal à trouver un moyen simple de vérifier. Je voudrais également automatiser la vérification car c'est quelque chose qui devra être fait régulièrement.