我想编写一个支持NTLMv2身份验证的node.js的http服务器。
Evertything使用handshak(type1,type2,type3消息)工作正常,我从客户端(Chrome浏览器)收到我的type3消息。在这条发送到服务器的消息中,有一个我可以在node.js服务器中读取的ntlmv2响应。如果此响应有效,我如何验证?
根据[1]我理解了type3消息,我能够创建自己的node.js-routine来生成这些哈希值。因此,当我有密码时,我可以创建一个等于我从浏览器获得的哈希值。但是,如何在不知道密码的情况下验证此哈希/响应?如何针对网络中的DomainController / ActiveDirectory对此进行身份验证?
如果你看[2],就会有一张完美描述我问题的图片。如何执行此图片的步骤“4”和“5”?
谢谢, Laryllan
[1] http://davenport.sourceforge.net/ntlm.html#theType3Message
答案 0 :(得分:0)
快速网络搜索确认每个人似乎都陷入了同样的困境。
到目前为止,我对此主题的最佳回应是: Windows Authentication Headers without .NET. Possible?
答案 1 :(得分:0)
要使NTLMv2凭据有效,您需要使用Active Directory域控制器的NETLOGON服务执行SecureChannel加密的RPC。也就是说,这是一件很难的事情。如果您的服务器支持Java Servlet过滤器,那么Jespa。
否则,有些模块可以像在Apache模块中那样在Web服务器级别执行auth,或者在IIS中启用IWA。但当然,这些类型的解决方案在很多方面都受到一定程度的限制。