Authentification Windows dans ASP.NET Core: connexion manuelle vs connexion intranet automatique et groupes disponibles

9

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 WindowsIdentitysans 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:

différences de groupe pour la connexion manuelle et la connexion automatique

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:

Configuration de la connexion

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.

Rick Strahl
la source

Réponses:

9

L'utilisateur s'est-il déconnecté de son ordinateur depuis qu'il a été ajouté à ces groupes?

Les groupes répertoriés sont conservés dans le jeton de connexion de l'utilisateur. Je pense que ce qui pourrait arriver, c'est que la connexion automatique envoie le jeton de connexion existant de l'utilisateur (créé lorsqu'il s'est connecté à Windows), de sorte qu'il ne contiendrait aucun groupe auquel il aurait été ajouté depuis sa dernière connexion.

La saisie manuelle du nom d'utilisateur et du mot de passe effectue une nouvelle connexion et obtient ainsi un tout nouveau jeton avec tous les groupes au moment de la connexion. Donc, de nouveaux groupes apparaîtront là-bas.

Gabriel Luci
la source
1
Après quelques vérifications supplémentaires, il s'avère que vous avez absolument raison. Au début, je pensais avoir redémarré la machine depuis que les problèmes se sont manifestés, mais après avoir forcé une déconnexion et une connexion, j'ai trouvé qu'en effet, après une nouvelle connexion, j'ai pu voir les groupes. Merci - si évident rétrospectivement mais toujours si facile à manquer.
Rick Strahl