Реализация поставщика учетных данных Windows
Этот вопрос связан с реализацией провайдера учетных данных Windows.
Я хочу ответить на этот вопрос. У нас есть специальное решение MFA, которое запрашивает смс / пин после того, как Windows закончила аутентификацию, прежде чем впустить пользователя. К сожалению, в Windows 2016 и Windows 10 winLogon.exe не ожидает закрытия настраиваемого решения mfa, если не выполняется никаких действий., это просто происходит, чтобы войти в систему пользователя, побеждая цель иметь приглашение MFA.
Я развернул пользовательский провайдер учетных данных, используя среду провайдера учетных данных Windows. Я знаю, что Windows вызывает функцию ReportResult ( https://msdn.microsoft.com/en-us/library/windows/desktop/bb776030(v=vs.85).aspx) после завершения аутентификации, чтобы сообщить о состоянии обратно, но в в этот момент я ожидал, что WinLogon.exe будет ждать (в этот момент мой пользовательский mfa запросит вызов), чтобы эта функция вернулась, вместо этого он, кажется, просто ждет ~2 минуты и регистрирует пользователя.
Может ли кто-нибудь помочь мне контролировать это поведение.
1 ответ
К сожалению, вы не можете использовать функцию ReportResult для блокировки провайдера учетных данных. Эта функция особенно полезна в случае сбоя аутентификации для обновления экрана входа в систему. Если вы хотите реализовать счетчик сбоев, например.
В вашем случае (MFA) вы должны запросить смс / пин после того, как пользователь нажал на кнопку отправки, поэтому в функции GetSerialization. Вы можете сделать это, создав новое окно с запросом смс / пин-кода. Затем, когда пользователь отправляет смс / пин, система проверяет имя пользователя / пароль с помощью LSA и смс / пин с помощью вашего алгоритма.
Вы не можете запросить у пользователя смс / пин-код в соответствии с результатом аутентификации по паролю.