as you know NTLM authenticate has following step:
(Interactive authentication only) A user accesses a client computer and provides a domain name, user name, and password. The client computes a cryptographic hash of the password and discards the actual password.
The client sends the user name to the server (in plaintext).
The server generates a 16-byte random number, called a challenge or nonce, and sends it to the client.
The client encrypts this challenge with the hash of the user’s password and returns the result to the server. This is called the response.
The server sends the following three items to the domain controller:
◦User name
◦Challenge sent to the client
◦Response received from the client
The domain controller uses the user name to retrieve the hash of the user’s password from the Security Account Manager database. It uses this password hash to encrypt the challenge.
The domain controller compares the encrypted challenge it computed (in step 6) to the response computed by the client (in step 4). If they are identical, authentication is successful.
my question is how can i send username, challenge, response (step 5) to domain controller to validate it in node.js? i see some library such as express-ntlm and passport-ntlm but these library don't have config to pass certificate to connect to domain controller..