ntlm-auth
v0.1.3
Published
Simple one-shot NTLM authentication for http/https
Downloads
12
Readme
node-ntlm-auth: NTLM session response authentication client
Introduction
This library enables communication with an NTLM server using the session response protocol.
Authentication
NTLM HTTP Authentication headers are Base64-encoded packed structures of three basic varieties. Type 1 & 3 are sent from the client to the server, and Type 2 is from server to client.
Because of how node.js handles keep-alive, the requests are handled by this library, as long as the Type 1 message is provided. The Type 1 message can be generated using node-smbhash or a similar library.
A request is made by providing the host, path, authentication information, and the Type 1 message. The response by the server to the Type 3 message is the callback.
API
| parameter | value |
| --- | --- |
| secure | true
if https, http otherwise |
| options | http(s) request options (including hostname, path, etc.)
| body | request body |
| auth | authentication parameters (see example) |
| type1_msg | initial type 1 message (can usually be sniffed) |
| callback | function to parse the response object |
Example
var ntlmRequest = require('./ntlm-auth.js').ntlmRequest;
ntlmRequest(true, requestOptions, body,
{
username: 'user',
workstation: 'workstation',
domain: 'domain',
password: 'password'
},
'type_1_message',
function(resp) {
resp.setEncoding('utf8');
resp.on('data', function (chunk) {
console.log(chunk);
}
resp.destroy();
);
});
Acknowledgements
This library is based off of python-ntlm
http://code.google.com/p/python-ntlm/
As well as functions from node-smbhash
https://github.com/jclulow/node-smbhash
References
The NTLM Authentication Protocol and Security Support Provider
Copyright (C) 2003, 2006 Eric Glass
http://davenport.sourceforge.net/ntlm.html
NTLM Authentication Scheme for HTTP
Ronald Tschalaer / 17. June 2003
http://www.innovation.ch/personal/ronald/ntlm.html