@ewsjs/ntlm-client
v3.0.1
Published
A node.js NTLM client with support for NTLM and NTLMv2 authentication, forked from clncln1/node-ntlm-client
Downloads
36,125
Maintainers
Readme
@ewsjs/ntlm-client (original: ntlm-client)
A node.js NTLM client with support for NTLM and NTLMv2 authentication, forked from clncln1/node-ntlm-client, see reason for forking and the PR https://github.com/clncln1/node-ntlm-client/pull/4 which is stuck at the time of publishing
npm install @ewsjs/ntlm-client
UPDATE 3.0
Fixes node 18+ issues with removed md4 and des ciphers, solution ref https://github.com/SamDecrock/node-http-ntlm/pull/107
API
request(options) (OPTIONAL)
request
is removed from dependency. to use this you have to addrequest
in dependency and import like thisconst ntlmrequest = require('@ewsjs/ntlm-client/lib/ntlmrequest')
. You also need to addextend
in dependency.
A convenience function that tries to authenticate against a given URL using the request
module.
If NTLM is not supported, it will fallback to Basic Auth.
- Arguments
options
an object holding below options for the authentication process:uri
the target URLmethod
the HTTP verbusername
password
request
this is optional. An object that holds options that should be passed to the request instance
- Returns
Promise
when resolved, therequest
instance, the result and the response body will be passed
createType1Message([workstation, target])
Creates a type 1 NTLM message to initialize the NTLM handshake
- Arguments
workstation
Optional. Ifundefined
,os.hostname()
will be usedtarget
Optional. This is the domain/host we are trying to authenticate against.
- Returns
string
Complete NTLM string that should be sent to the server in theAuthentication
header
decodeType2Message(str)
Decodes a type 2 message received from the server including the NTLM challenge
- Arguments
str
Either the base64 encoded type 2 message, or the completeWWW-Authenticate
header, or an object containg the response headers (http.IncomingMessage
)
- Returns
type2Message
An object containing the following information about the received type 2 message:flags
,encoding
,version
,challenge
,targetName
,targetInfo
.
createType3Message(type2Message, username, password[, workstation, target])
Creates a type 3 message based on the type 2 message received from the server.
- Arguments
type2Message
The decoded type 2 message objectusername
password
workstation
Optional. If falsy,os.hostname()
will be usedtarget
Optional. If falsy, the target name from the type 2 message will be used. This is the domain/host we are trying to authenticate against.
- Returns
string
Complete NTLM string that should be sent to the server in theAuthentication
header