Node.js NTLM HTTP Authentication,如何处理这3种types

好吧,对不起,如果这是一个愚蠢的问题,但我想获得NTLM身份validation工作w / Node.js. 我一直在阅读( http://davenport.sourceforge.net/ntlm.html#theNtlmMessageHeaderLayout )。 我发送标题,并获得一个Base64身份validation标题。

我试着将它从Base64转换为UTF8通过使用base64编码新的缓冲区,然后调用toString('utf8') ,它返回一个string类似

NTLMSSP\u0000\u0001\u0000\u0000\u0000\u0007�\b�\u0000

这是我需要帮助的地方。 我明白NTLMSSP \ u0000是空终止的签名,但其余的应该表明,但对我来说这只是垃圾。 这是unicode字符,但我怎么得到实际的数据呢? 我可能会错误地将其转换,这可能会增加我的麻烦,但我希望有人能帮助。

看看http://www.innovation.ch/personal/ronald/ntlm.html你收到什么是types2的消息。 这些页面以一种非常实用的方式解释它。 您必须提取服务器质询(随机数)和服务器标志。

我刚刚为node.js实现了一个模块: https : //github.com/SamDecrock/node-http-ntlm

你看过NTLMAPS吗?

您可以通过将其用作代理服务器来解决您的问题,但是如果您真的想在Javascript中实现NTLM身份validation,那么NTLMAPS会提供大量的工作代码来学习。

山姆张贴了我所了解的最好的资源是怎么回事。

GitHub上的jclulow似乎已经在他build立的Samba库中实现了。

看看这里: https : //github.com/jclulow/node-smbhash在lib \ ntlm.js下你可以看到他是如何处理响应的。

几个月前,我使用javascript, ntlm.js构build了客户端。 也许这可以帮助你相处。 它基于文档@ innovation.ch和Microsofts自己的官方文档(请参阅github页面上的参考资料)。