来自 Node.js 的 Microsoft Dynamics NAV '18 Web 服务的 NTLM 身份验证失败

NTLM authentication for Microsoft Dynamics NAV '18 web service from Node.js fails

我一直在努力从 Node 服务器向 NAV '18 进行身份验证。 NTLM 身份验证在 POSTMAN 中工作正常,但在 Node 中却不行。我已经尝试使用 'Authorization: NTLM', 'username:password' 作为我请求的 header,以及一些 NTLM 库,例如 httpntlm,但没有成功。

是否有使用用户名和密码进行 ntlm 身份验证的实际工作示例?将 windows 凭据更改为 NAVUserPassword 不是一个选项...

您可以使用相同的后端数据库为 NAV 创建多个服务器实例。我用它来创建与 Azure Active Directory 一起使用的实例,而不影响我们基于 Active Directory 的内部用户。

https://docs.microsoft.com/en-us/dynamics-nav/how-to--create-a-microsoft-dynamics-nav-server-instance

你可以使用我几年前写的httpntlm模块:

https://www.npmjs.com/package/httpntlm

var httpntlm = require('httpntlm');

httpntlm.get({
    url: "https://www.url.to.nav.com",
    username: 'username',
    password: 'password',
    workstation: '',
    domain: ''
}, function (err, res){
    if(err) return err;

    console.log(res.headers);
    console.log(res.body);
});