gpt4 book ai didi

node.js - LDAP获取全名和电子邮件nodejs

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:16 25 4
gpt4 key购买 nike

我正在用 Node.js 编写应用程序。对于登录,我想使用事件目录。我找到了这个package 。身份验证正常,但我无法获取用户全名和电子邮件。这是我的代码:

var ActiveDirectory = require('activedirectory2');
var ActiveDirectory = require('activedirectory2');
var _ = require('underscore');
var query = 'cn=*Exchange*';
var opts = {
includeMembership : [ 'all' ],
includeDeleted : false
};
var config = {
url: 'ldap://dc.in.domain.cz',
baseDN: 'CN=Users,DC=in,DC=domain,DC=cz',
bindDN: 'CN=searchuser,CN=users,DC=in,DC=domain,DC=cz'
};
var ad = new ActiveDirectory(config);
var username = 'username @in.domain.cz';
var password = 'my_password';

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

console.log('Users');
_.each(results.users, function (user) {
console.log(' ' + user.cn);
});
});
} else {
console.log('Authentication failed!');
}
});

我收到错误:

ERROR: {"lde_message":"000004DC: LdapErr: DSID-0C0907C2, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580\u0000","lde_dn":null}

谢谢

最佳答案

authenticate函数仅用于测试凭据是否有效。例如,如果您有一个登录页面并且您想查看用户向您提供的凭据是否正确,则可以使用此选项。这些凭据不用于其他操作。

在文档中,它在the Usage heading下说:

The username and password specified in the configuration are what are used for user and group lookup operations.

因此,当您使用 find() 时,它会使用您在 config 中放入的凭据。您有 bindDN ,但没有 password,这可能是绑定(bind)失败的原因。您需要添加该“searchuser”帐户的密码:

var config = {
url: 'ldap://dc.in.domain.cz',
baseDN: 'CN=Users,DC=in,DC=domain,DC=cz',
bindDN: 'CN=searchuser,CN=users,DC=in,DC=domain,DC=cz',
password: 'something'
};

请注意,文档说您还可以使用 username 属性而不是 bindDN,但不认为除了能够仅指定用户名而不是整个 DN 之外有任何功能差异:

var config = {
url: 'ldap://dc.in.domain.cz',
baseDN: 'CN=Users,DC=in,DC=domain,DC=cz',
username: 'searchuser@in.domain.cz',
password: 'something'
};

关于node.js - LDAP获取全名和电子邮件nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58699059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com