2

这是一个与 Windows Credential Provider Implementation 有关的问题

我想跟进这个问题。我们有一个自定义 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 分钟并将用户登录。

谁能帮我控制这种行为。

4

1 回答 1

1

不幸的是,您不能使用 ReportResult 函数来阻止凭据提供程序。如果身份验证失败,此功能对于更新登录屏幕特别有用。例如,如果要实现失败计数器。

在您的情况下(MFA),您应该在用户单击提交按钮后询问短信/密码,因此在 GetSerialization 函数中。您可以通过创建一个询问短信/密码的新窗口来做到这一点。然后,当用户发送短信/密码时,系统会使用 LSA 检查用户名/密码,并使用您的算法检查短信/密码。

您不能根据密码认证结果向用户询问短信/密码。

于 2018-05-30T18:38:37.847 回答