Node.js NTLM HTTP-аутентификация, как обрабатывать 3 типа - PullRequest
6 голосов
/ 04 апреля 2011

Хорошо, извините, если это глупый вопрос, но я пытаюсь заставить NTLM-аутентификацию работать с Node.js. Я читал это (http://davenport.sourceforge.net/ntlm.html#theNtlmMessageHeaderLayout). Я отправляю заголовок и получаю заголовок проверки подлинности Base64.

Я попытался преобразовать его из Base64 в UTF8, создав новый буфер с кодировкой base64, а затем вызвав toString('utf8'), который возвращает строку типа

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

Здесь мне нужна помощь. Я понимаю, что NTLMSSP \ u0000 - это подпись с нулевым символом в конце, но все остальное должен указывать, но для меня это просто мусор. Это символы Юникода, но как я могу получить реальные данные из этого? Возможно, я неправильно конвертирую это, что может добавить к моим неприятностям, но я надеюсь, что кто-то может помочь.

Ответы [ 4 ]

5 голосов
/ 28 ноября 2012

Взгляните на http://www.innovation.ch/personal/ronald/ntlm.html То, что вы получите, это сообщение типа 2.Страницы объясняют это очень практичным способом.Вы должны извлечь запрос к серверу (nonce) и флаги сервера.

Я только что реализовал модуль для node.js, чтобы сделать это: https://github.com/SamDecrock/node-http-ntlm

3 голосов
/ 17 января 2013

Сэм опубликовал лучший ресурс, который я когда-либо видел, чтобы понять, что происходит.

jclulow на GitHub, похоже, реализовал его в библиотеке Samba, которую он построил.

Взгляните сюда: https://github.com/jclulow/node-smbhash в lib \ ntlm.js вы можете увидеть, как он обрабатывает ответы.

3 голосов
/ 05 апреля 2011

Вы смотрели на NTLMAPS ?

Вы можете решить свою проблему, используя его в качестве прокси-сервера, но если вы действительно хотите реализовать аутентификацию NTLM в Javascript, тогда NTLMAPS предоставляет много рабочего кода для изучения.

2 голосов
/ 04 июля 2013

Я построил клиент пару месяцев назад, используя javascript, ntlm.js .Может быть, это может помочь вам ладить.Он основывался на документации @ innov.ch и собственной официальной документации Microsoft (см. Ссылки на странице github).

...