使用sAMAccountName和密码/ NodeJs与Active Directory进行身份验证

时间:2018-10-19 20:29:38

标签: node.js authentication active-directory

我正在尝试使用Nodejs向具有Active Directory的服务器进行身份验证。我读到了很多答案,但是没有人使用sAMAccountName作为属性来做到这一点。

我的代码是:

let ActiveDirectory = require('activedirectory');
let config = {
              url: 'ldap://XX.XX.XX.XXX:389',
              baseDN: 'DC=domain,DC=com',
              username: 'serverUserName',
              password: 'serverPsw'
             };

let ad = new ActiveDirectory(config);

let username = 'sAMAccountName=11111111111, OU=Usuarios, DC=domain,DC=com',
    password = 'myPassword';

ad.authenticate(username, password, function (err, auth) {
  if (err) {
    console.log('ERROR: ' + JSON.stringify(err));
    return;
  }

  if (auth) {
    console.log('\nAuthenticated!', auth);
  }
  else {
    console.log('\nAuthentication failed!');
  }
});

此代码仅在更改用户名时有效

 'CN=myIdentifier,OU=Usuarios,DC=domain,DC=com' 

,并使用CN作为属性。

我真的不知道该怎么办,但必须使用sAMAccountName才能工作。

有人可以帮我实现它吗?

谢谢

1 个答案:

答案 0 :(得分:0)

如果您也包含域,则可以使用sAMAccountName对Active Directory LDAP进行身份验证-例如company \ logonid而不只是登录ID。您也可以使用完整的userPrincipalName,例如logonid@company.ccTLD

对于任何一种格式,您都不使用任何LDAP语法组件(something =或,ou = xyz,dc = abc)。您仅使用登录ID和域名(在上面的示例中,旧样式域名为company,AD样式域名为company.ccTLD)