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