Estamos utilizando la biblioteca httpntlm ( https://www.npmjs.com/package/httpntlm ) para autenticar con NTLM.
Estamos siguiendo los 3 pasos del protocolo como ejemplo:
var ntlm = require('httpntlm').ntlm; var async = require('async'); var httpreq = require('httpreq'); var HttpsAgent = require('agentkeepalive').HttpsAgent; var keepaliveAgent = new HttpsAgent(); var options = { url: "https://someurl.com", username: 'm$', password: 'stinks', workstation: 'choose.something', domain: '' }; async.waterfall([ function (callback){ var type1msg = ntlm.createType1Message(options); httpreq.get(options.url, { headers:{ 'Connection' : 'keep-alive', 'Authorization': type1msg }, agent: keepaliveAgent }, callback); }, function (res, callback){ if(!res.headers['www-authenticate']) return callback(new Error('www-authenticate not found on response of second request')); var type2msg = ntlm.parseType2Message(res.headers['www-authenticate']); var type3msg = ntlm.createType3Message(type2msg, options); setImmediate(function() { httpreq.get(options.url, { headers:{ 'Connection' : 'Close', 'Authorization': type3msg }, allowRedirects: false, agent: keepaliveAgent }, callback); }); } ], function (err, res) { if(err) return console.log(err); console.log(res.headers); console.log(res.body); });Obtenemos 401 en las primeras 2 llamadas, luego la última responde con 400 BadRequest. Si uso Postman con autenticación NTLM e inspecciono las solicitudes, la última llamada funciona y obtengo 200. (También probé axios-ntlm ( https://www.npmjs.com/package/axios-ntlm ) y obtener el mismo error.
¿Habéis tenido este problema antes por casualidad?