nodejs ldap身份验证失败

时间:2018-04-11 06:33:23

标签: node.js ldapjs

我正在使用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脚本时,我得到以下错误:

  

错误:{&#34; lde_message&#34;:&#34; 80090308:LdapErr:DSID-0C09042F,评论:AcceptSecurityContext错误,数据52e,v2580 \ u0000&#34;,&#34; lde_dn&#34;日期null}

安全地说,我不知道我在做什么。

但我知道searchAttribute应该是&#39; sAMAccountName&#39; - 我怎么把它放在配置中?

我也知道,当我用'sss&#39;的用户名替换其DN即

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。我也没有取得多大成功。我只想通过用户名进行身份验证,并获取用户名的组成员身份。

0 个答案:

没有答案