通过浏览器获取 Windows 服务器中的当前登录用户

Get current logged user in Windows Server via browser

所以...这是我的第一个问题,请放轻松,告诉我是否可以改进问题本身。

问题是,我们正在尝试在 node.js 中创建一个内部网,其中一个先决条件是用户不需要在每次登录机器时都进行身份验证。

我们在 php 中已经有一个使用 kerberos 和 ldap 进行身份验证的应用程序,但我们正在努力避免 php 以便进一步开发。

所以,主要问题是:有一种方法可以通过 node.js 获取 Windows 服务器中的当前登录用户吗?或者以其他方式开发具有 node.js ?

的 SSO 网络

我认为没有不登录的安全身份验证方法。我建议使用 node-ldapjs,这样您就不需要 PHP 与 ldap 通信。

经过一些研究和测试,发现express-ntlm是node的最佳选择,并且获取机器的用户登录,即使node应用程序是运行通过Windows 服务器.

ntlm = require('express-ntlm');

var app = express();

app.use(ntlm({
    debug: function() {
        var args = Array.prototype.slice.apply(arguments);
        console.log.apply(null, args);
    },
    domain: '<domain>',
    domaincontroller: '<ldap://ldap.com>',
}));

app.all('*', function(request, response) {
    response.end(JSON.stringify(request.ntlm)); // {"DomainName":"MYDOMAIN","UserName":"MYUSER","Workstation":"MYWORKSTATION"}
    console.log(JSON.stringify(request.ntlm));
});

app.listen(3003);