我为 Windows-7 登录创建了一个子身份验证包。它成功地用于本地帐户登录。
然后我尝试在 Windows Server 2008 r2 中为事件目录实现相同的子身份验证包。我将我的 DLL 放在 Windows\System32\
文件夹中,并将 Kerberos 的注册表值修改为 this Microsoft 文档解释了子身份验证 dll。
我设置的值是在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos
Value: Auth0
set to C:\Windows\System32\SubAuth .dll
(我就在这里吗?)。
但是在进行身份验证时,我注意到我的子身份验证包没有被调用,因为在针对 AD 对客户端计算机上的用户进行身份验证时,我没有被要求提供第二个因素。
我是不是在设置中遗漏了一些东西,或者我必须在我的子身份验证包中更改一些东西。
如果我在这里遗漏了任何信息,请告诉我。
PS: Sub-authentication package 是根据 Microsoft 的 Credential Provider 文档开发的(在 Msv1_0SubAuthenticationFilter 例程中)。
最佳答案
看起来这是设计使然 - 来自 kerberos\ssv1_0 subauth 包的 Msv1_0SubAuthenticationFilter 例程不会被调用用于缓存域交互式登录。
对于交互式登录,所有链将类似于:
LsaApLogonUserEx2->MsvSamValidate->MsvpSamValidate->MsvpPasswordValidate
LsaApLogonUserEx2->MsvSamValidate->MsvpSamValidate->Msv1_0SubAuthenticationRoutine
但是对于缓存交互式登录,所有链看起来像:
LsaApLogonUserEx2->MsvpPasswordValidate
<and there is no call to Msv1_0SubAuthenticationRoutine here>
关于windows - 事件目录自定义身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245017/