Реализация поставщика учетных данных Windows

Это вопрос, связанный с реализацией поставщика учетных данных Windows.

Я хочу ответить на этот вопрос. У нас есть настраиваемое решение MFA, которое запрашивает sms / pin после того, как 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 минуты и входит в систему.

Может ли кто-нибудь помочь мне контролировать это поведение.


person user3773206    schedule 20.11.2017    source источник
comment
Возможно, я не правильно понимаю вашу проблему, но почему вы не дожидаетесь ввода ПИН-кода, а затем вызываете credentialsChanged () - метод события ICredentialProviderEvents, который вы получаете в методе Advise () - поставщика? Я когда-то делал подобные вещи, и это отлично сработало.   -  person Frank    schedule 28.11.2017
comment
У меня есть связанный с этим вопрос: stackoverflow.com/questions/64919778/   -  person cpp19    schedule 20.11.2020


Ответы (1)


К сожалению, вы не можете использовать функцию ReportResult для блокировки поставщика учетных данных. Эта функция особенно полезна в случае сбоя аутентификации для обновления экрана входа в систему. Например, если вы хотите реализовать счетчик отказов.

В вашем случае (MFA) вы должны запрашивать sms / pin после того, как пользователь нажал кнопку отправки, то есть в функции GetSerialization. Вы можете сделать это, создав новое окно, которое запрашивает смс / пин-код. Затем, когда пользователь отправляет sms / pin, система проверяет имя пользователя / пароль с помощью LSA и sms / pin с вашим алгоритмом.

Вы не можете запросить у пользователя смс / пин-код по результату аутентификации по паролю.

person Sebou    schedule 30.05.2018