【问题标题】:Node.js NTLM HTTP Authentication, how to handle the 3 typesNode.js NTLM HTTP 身份验证,如何处理这 3 种类型
【发布时间】:2011-04-04 15:57:29
【问题描述】:

我正在尝试让 NTLM 身份验证与 Node.js 一起工作。我一直在读这个(http://davenport.sourceforge.net/ntlm.html#theNtlmMessageHeaderLayout)。我发送标头并获得 Base64 身份验证标头。

我尝试将它从 Base64 转换为 UTF8,方法是使用 base64 编码创建一个新的 Buffer,然后调用 toString('utf8') 来返回类似

的字符串

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

这是我需要帮助的地方。我知道 NTLMSSP\u0000 是空终止的签名,但是其余的 supposed 表示,但对我来说这只是垃圾。它是 unicode 字符,但我应该如何从中获取实际数据?我可能转换不正确,这可能会增加我的麻烦,但我希望有人能提供帮助。

【问题讨论】:

    标签: node.js authentication encoding ntlm


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你看过NTLMAPS吗?

      您可以通过将其用作代理服务器来解决您的问题,但如果您真的想在 Javascript 中实现 NTLM 身份验证,那么 NTLMAPS 提供了很多工作代码来研究。

      【讨论】:

        【解决方案3】:

        Sam 发布了我见过的最好的资源,用于了解正在发生的事情。

        GitHub 上的 jclulow 似乎已经在他构建的 Samba 库中实现了它。

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-06-23
            • 2011-11-10
            • 2020-09-05
            • 1970-01-01
            相关资源
            最近更新 更多