6

我正在使用 activedirectory npm 包对企业中的 activedirectory 进行身份验证。发现身份验证问题,而我之前在其他软件中已经多次这样做了。

var ActiveDirectory = require('activedirectory');
var config = { url: 'ldap://<ldap server>:389',

            baseDN:'DC=ads,DC=dwdwdw,DC=com',
            bindDN: 'CN=dddd,OU=ServiceAccounts,OU=Process,DC=ads,DC=dwdwdw,DC=com',
            bindCredentials: 'vBAX5y5@',
            includeMembership:['user'],
             referrals: {
                 enabled: false,
                 excluded: [ ]
               },
               attributes: {

                   user: [ 'sAMAccountName' ],
                   group: [ 'distinguishedName' ]
                 },
               //filter: '(&(objectcategory=person)(objectclass=user)(|(samaccountname={{username}})(mail={{mail}})))'
                 //filter: '(&(objectcategory=*)(|(samaccountname={{username}})))'

             }

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

当我运行这个 nodejs 脚本时,我收到以下错误:

错误:{“lde_message”:“80090308:LdapErr:DSID-0C09042F,注释:AcceptSecurityContext 错误,数据 52e,v2580\u0000”,“lde_dn”:null}

可以肯定地说,我不知道我在做什么。

但我知道 searchAttribute 应该是 'sAMAccountName' - 我如何把它放在配置中?

我也知道,当我用它的 DN 替换“sss”的用户名时,即

var username = 'CN=<full name of user>,OU=InfoWorker,OU=People,DC=ads,DC=dwdwdw,DC=com';

,它完美地验证。

我在 MongoDB 上成功启用 LDAP 时使用了 usertodnmapping。

userToDNMapping: |-
  [
        {
         match: "(.+)",
         ldapQuery: "dc=ads,dc=dwdwdw,dc=com??sub?(samAccountName={0})"
        }
       ]

但我似乎无法在 activedirectory 包中找到它的等价物。你能帮我吗?

我也不介意使用 ldapjs。我也没有取得太大的成功。我只想使用用户名进行身份验证,并获取用户名的组成员身份。

4

0 回答 0