Перевірка автентичності Windows в ядрі ASP.NET: вхід вручну проти автоматичного входу в Інтернет та доступні групи


9

У мене є програма ASP.NET Core 3.0, яка працює з локальною аутентифікацією Інтранет Windows для виявлення зареєстрованих користувачів. Використовуючи стандартну поведінку Windows Authentication, я можу захопити користувача WindowsIdentityбез проблем.

Однак, залежно від того, як користувач увійшов у браузер за допомогою автоматичного входу в браузер Інтранет (тобто немає діалогового вікна паролів) або явного входу через діалогове вікно пароля браузера, я отримую різні результати для груп користувачів .

Далі йде запит API, який повторює інформацію про користувачів, включаючи відфільтрований список членства в групі (що виключає вбудовані акаунти). Ліворуч - це ручний вхід, а праворуч - автоматичний вхід.

Для явного входу я правильно бачу всі спеціальні групи, до яких користувач входить. Однак для автоматичного входу ті самі групи не відображаються:

групові відмінності для ручного та автоматичного входу

Я також уважно ознайомився з примірниками користувача та ідентичності на сервері, і він посилається на ці ж самі SID для користувача, тому здається дивним, що для членства в групі повертаються різні результати.

Будь-які ідеї, чому список груп відрізняється, коли я отримую той самий обліковий запис? Зверніть увагу, що групи локальні, тому це не повинно бути проблемою через доступ до домену.

Примітка. Я навіть тестую локально локальний хост, і щоб перевірити це, я встановив тут налаштування Windows Proxy:

Конфігурація входу

Якщо вимкнені прапорці, я змушений увійти. Якщо увімкнено (у браузерах Chromium так чи інакше), я повинен явно ввести свої облікові дані у діалоговому вікні входу в браузер.

Відповіді:


9

Чи користувач вийшов зі свого комп’ютера з моменту додавання до цих груп?

Перелічені групи зберігаються в маркері входу користувача. Я думаю, що може статися, що автоматичний вхід надсилає існуючий маркер входу користувача (створений під час входу в Windows), щоб він не містив груп, до яких вони були додані з моменту останнього входу.

Вводячи вручну ім'я користувача та пароль, виконується новий логін, і, таким чином, отримується абсолютно новий маркер для всіх груп на момент входу. Тож там з’являться нові групи.


1
Після деякої додаткової перевірки виявляється, що ви абсолютно праві. Спочатку я думав, що перезавантажив машину з тих пір, як з'явилися проблеми, але після фактичного примусового виходу з системи та входу в систему я виявив, що дійсно після входу знову я зміг побачити групи. Дякую - так очевидно в ретроспективі, але все одно так легко пропустити.
Рік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.