如您所知NTLM身份验证具有以下步骤:
(仅限交互式身份验证)用户访问客户端计算机并提供域名,用户名和密码。客户端计算密码的加密哈希并丢弃实际密码。
客户端将用户名发送给服务器(以纯文本格式)。
服务器生成一个16字节的随机数,称为质询或随机数,并将其发送给客户端。
客户端使用用户密码的哈希对此质询进行加密,并将结果返回给服务器。这称为响应。
服务器将以下三项发送给域控制器:
◦用户名
◦挑战发送到客户端
◦从客户收到的响应
域控制器使用用户名从安全帐户管理器数据库中检索用户密码的哈希值。它使用此密码哈希来加密挑战。
域控制器将其计算的加密质询(在步骤6中)与客户端计算的响应(在步骤4中)进行比较。如果它们相同,则认证成功。
我的问题是我如何向域控制器发送用户名,质询,响应(步骤5)以在node.js中验证它? 我看到一些库如express-ntlm和passport-ntlm,但这些库没有配置通过证书连接到域控制器..