使用node.js进行NTLM身份验证

时间:2012-08-27 10:51:32

标签: node.js ntlm

我需要使用node.js使用NTLM代理身份验证与服务器通信。

我使用了2个模块:

  1. node-curl https://github.com/jiangmiao/node-curl
  2. 请求,强烈推荐 htps://github.com/mikeal/request
  3. 我没有找到ntlm请求模块的文档,虽然node-curl支持curl easy选项,但我没有找到关于如何为CURLOPT_HTTPAUTH指定CURLAUTH_NTLM的文档。

    我想知道如何处理NTLM代理身份验证。我很想继续使用请求模块。

5 个答案:

答案 0 :(得分:6)

写了一个Node.js库来进行HTTP NTLM握手:https://github.com/SamDecrock/node-http-ntlm

它来自python-ntlm库。

答案 1 :(得分:2)

如果你使用Express,你可以使用express-ntlm,这使得NTLM整体上不那么令人沮丧

https://www.npmjs.com/package/express-ntlm

答案 2 :(得分:1)

在node.js代码中直接使用NTLM是否很重要?

相反,您可以尝试安装一些中间NTLM代理,这些代理将使您有机会在node.js中使用简单的HTTP代理。 它至少有两种解决方案:

  1. Cntlm - 用C语言编写
  2. Ntlmaps - 用Python编写

答案 3 :(得分:0)

这是Node.js中NTLM的服务器端的部分实现。它可能有助于开发客户端请求:https://gist.github.com/3049352

这里有一些代码可以生成类型1消息并收到类型2响应。类型3消息尚未实现,是最后一步:github.com/kevinswiber/node-ntlm-client

以下是有关NTLM协议的一些文档,应该有助于完成它:http://www.innovation.ch/personal/ronald/ntlm.html

这是一个开始。

答案 4 :(得分:0)

不幸的是,我只制作了或多或少简化版的NTLM。

这有点完整:https://gist.github.com/Piot/3063016