Прокси-аутентификация и запрос узла

Я пытаюсь отправить запрос на получение на сайт через https, используя request. Однако я нахожусь за прокси-сервером, для использования которого требуется аутентификация. Когда я пытаюсь добавить аутентификацию, он не может подключиться к сайту.

Я попытался добавить аутентификацию в URL-адрес прокси, например:

var proxyUrl = "http://" + 'user' + ":" + 'password' + "@" + 'url:8080';
var request = require('request').defaults({proxy: proxyUrl});

Я также пытался добавить авторизацию в заголовок, но у него была такая же проблема.

headers: {
            'Proxy-Authorization': new Buffer('user:password').toString('base64')
}

Кажется, что прокси-сервер возвращается с ответом авторизации, однако запрос, похоже, ничего не отправляет после этого, поэтому он фактически не входит в систему. Есть ли еще какие-то конфигурации, которые мне нужно добавить?


person BrendanM    schedule 22.10.2015    source источник
comment
Или попробуйте request-ntlm или request-simple-ntlm.   -  person robertklep    schedule 14.12.2015
comment
Да, просто посмотрите на proxying-agent, который, кажется, поддерживает прокси NTLM. Кажется, есть небольшое несоответствие между тем, что написано в ридми, и тем, что в источнике...   -  person BrendanM    schedule 14.12.2015


Ответы (1)


Оказалось, что прокси, который мы используем, использует аутентификацию NTLM. Поэтому для аутентификации я должен использовать протокол NTLM вместо Basic. Я рассмотрю возможность использования Proxing-agent для выполнения этой аутентификации. Или, как упоминал robertklep, есть несколько вариантов прямой аутентификации на сервере с использованием NTLM.

Удалось реализовать это с помощью NTLM.js. от node-proxying-agent и запроса, используя следующее описание протокол.

person BrendanM    schedule 14.12.2015
comment
Есть ли успех в этом? - person Jackie; 16.12.2015
comment
Мне удалось создать сообщения для отправки, однако сервер все еще возвращается с ошибкой аутентификации, поэтому еще предстоит проделать некоторую работу. На данный момент это не самый высокий приоритет для меня, однако я обновлю это, когда закончу. - person BrendanM; 17.12.2015