Windows Active directory自定义身份验证

Windows Active directory自定义身份验证,windows,authentication,active-directory,windows-server-2008-r2,custom-authentication,Windows,Authentication,Active Directory,Windows Server 2008 R2,Custom Authentication,我已经为Windows-7登录创建了一个子身份验证包。它成功地用于本地帐户登录。 然后,我尝试在WindowsServer2008R2中为active directory实现相同的子身份验证包。我将dll放在Windows\System32\文件夹中,并修改了Kerberos的注册表值,正如Microsoft文档为子身份验证dll所解释的那样 我在HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos中设置的值:A

我已经为Windows-7登录创建了一个子身份验证包。它成功地用于本地帐户登录。 然后,我尝试在WindowsServer2008R2中为active directory实现相同的子身份验证包。我将dll放在
Windows\System32\
文件夹中,并修改了Kerberos的注册表值,正如Microsoft文档为子身份验证dll所解释的那样

我在
HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos
中设置的值:
Auth0
设置为
C:\Windows\System32\SubAuth.dll
(我在这里吗?)

但在进行身份验证时,我注意到我的子身份验证包没有被调用,因为在根据AD对客户端计算机上的用户进行身份验证时,我没有被询问第二个因素

我是否在安装程序中缺少某些内容,或者我必须在我的子身份验证包中更改某些内容

如果我错过了这里的任何信息,请告诉我


PS:子身份验证包是根据Microsoft的凭据提供程序文档(在Msv1\u 0子身份验证筛选器例程中)开发的。

看起来这是经过设计的-kerberos\ssv1\u 0子身份验证包中的Msv1\u 0子身份验证筛选器例程不会被调用用于缓存域交互式登录

对于交互式登录,所有链将类似于:

LsaApLogonUserEx2->MsvSamValidate->MsvpSamValidate->MsvpPasswordValidate
LsaApLogonUserEx2->MsvSamValidate->MsvpSamValidate->Msv1_0SubAuthenticationRoutine
但对于缓存的交互式登录,所有链如下所示:

LsaApLogonUserEx2->MsvpPasswordValidate 
<and there is no call to Msv1_0SubAuthenticationRoutine here>
LsaApLogonUserEx2->MsvpPasswordValidate

为了实现我提出的问题,我需要破解微软的认证包

这就是我所做的

要与active directory通信并制作身份验证w.r.t.广告,我必须在提交凭据提供程序之前完成

因此,在凭证提供程序中,我对解决方案的控制流程如下所示:

  • 检查用户是否已连接到网络
  • 如果是,则与预先定义的AD服务器通信,并根据AD条目验证用户
  • 如果用户已验证,则仅要求凭据提供程序中的第二个因素,然后在验证成功后,将用户传递给子身份验证模块并绕过子身份验证中的第二个因素
  • 若用户未连接到网络,则使用子验证模块进行验证

  • 因此,基本上,如果用户需要针对AD进行验证,我必须首先执行第二次FA,然后在sub-auth模块中执行密码验证。

    您好,您是如何解决这个问题的?我有同样的问题,这里的答案也没有帮助。@OlorunfemiAjibulu很抱歉耽搁了。我已经回答了我的问题。希望这对你有帮助。让我知道。