J'ai une application ASP.NET Core 3.0 qui fonctionne avec l'authentification Intranet Windows locale pour identifier les utilisateurs connectés. En utilisant les comportements d'authentification Windows standard, je peux capturer l'utilisateur WindowsIdentity
sans problème.
Cependant, selon la façon dont l'utilisateur est connecté au navigateur à l'aide de la connexion automatique au navigateur Intranet (c'est-à-dire pas de boîte de dialogue de mot de passe) ou de la connexion explicite à l'aide de la boîte de dialogue Mot de passe du navigateur, j'obtiens des résultats différents pour les groupes d'utilisateurs .
Voici une demande d'API qui renvoie des informations utilisateur, y compris une liste d'appartenance à un groupe filtrée (qui exclut les comptes intégrés). Celui de gauche est une connexion manuelle, celui de droite une connexion automatique.
Pour la connexion explicite, je vois correctement tous les groupes personnalisés dont l'utilisateur fait partie. Cependant, pour la connexion automatique, ces mêmes groupes n'apparaissent pas:
J'ai également examiné de près les instances d'utilisateur et d'identité sur le serveur, et cela fait référence aux mêmes SID pour l'utilisateur, il semble donc étrange que des résultats différents soient renvoyés pour l'appartenance au groupe.
Avez-vous des idées pourquoi la liste des groupes est différente lorsque je reçois le même compte? Notez que les groupes sont locaux, donc cela ne devrait pas être un problème en raison de l'accès au domaine.
Remarque: je teste localement sur localhost même, et pour tester cela, je définis les paramètres de proxy Windows ici:
Avec les cases à cocher désactivées, je suis obligé de me connecter. Avec eux activés (dans les navigateurs Chromium de toute façon), je dois entrer explicitement mes informations d'identification dans la boîte de dialogue de connexion du navigateur.