【发布时间】:2019-01-21 14:59:48
【问题描述】:
从 nodejs 中的活动目录中获取用户时,我遇到了高延迟。
我正在使用来自 npm 'activedirectry' 的节点库。 https://www.npmjs.com/package/activedirectory
用户量相对不大,大概1000人左右……
查询时间在 2 到 4 秒之间。
'activedirectory'库的函数findUsers提供的默认查询是(&(|(objectClass=user)(objectClass=person))(!(objectClass=computer))(!(objectClass=group ))).
我在 sAMAccountName 字段上添加了一个额外的过滤器。 sAMAccountName=*somePartOfName*
无论如何,无论有没有我的添加,查询时间仍然很慢。
我没有完整的活动目录服务器配置, 但似乎同一网络上的其他平台使用活动目录运行得更快,但它们可以使用其他框架,在 java 和 .NET 中。
这种高延迟的原因可能是什么?
谢谢
// ad is configured only with user, password, base dn and url
function findUsers(partOfsAMAccountName) {
const additionalQuery = `sAMAccountName=*${partOfsAMAccountName}*`;
return new Promise(resolve => {
ad.findUsers(additionalQuery, false, (error, users) => {
if(error) {
console.error('%j', error);
}
resolve(users || []);
})
}
}
我想做的是根据活动目录的用户名创建一个自动完成机制。
在同一个网络上,我们将 bitbucket 服务器连接到同一个活动目录服务器。从 bitbucket 客户端看来,自动完成功能要快得多。距离客户端约 1 秒。
我已经搜索了 bitbucket 的开源,但没有找到。
【问题讨论】:
标签: node.js performance networking active-directory