【发布时间】:2018-04-18 16:11:38
【问题描述】:
在我的节点应用程序中,我有一个用例,我只需要对属于特定组的 LDAP 用户进行身份验证。如果用户不属于上述组,则身份验证应该失败。
我正在使用库 ldapauth-fork 进行 LDAP 身份验证。
我尝试了各种过滤器方法,但都没有按预期工作。以下是我尝试过的尝试:
let ldapConnector = new LdapAuth (
{
url : config.ldap.url,
bindDN : config.ldap.bindDN,
adminPassword : config.ldap.adminPassword,
searchBase : config.ldap.searchBase,
searchFilter : "(&(sAMAccountName=testUser)(memberOf=testGroup))",
cache : true,
includeRaw : true,
log : logger
}
);
对于这个配置,我总是得到no such user: "testuser",即使用户是testGroup 组的成员。
let ldapConnector = new LdapAuth (
{
url : config.ldap.url,
bindDN : config.ldap.bindDN,
adminPassword : config.ldap.adminPassword,
searchBase : config.ldap.searchBase,
searchFilter : "(sAMAccountName=testuser)",
groupSearchFilter : "(member=testGroup)"`
cache : true,
includeRaw : true,
log : logger
}
);
对于这种配置,认证总是成功的,即使组名是一个随机字符串。
那么,使身份验证工作的正确过滤字符串应该是什么?
【问题讨论】:
-
您使用的是 Microsoft Active Directory、OpenLDAP 还是其他?
-
@T-Heron 我正在使用 Microsoft Active Directory。
标签: javascript node.js ldap ldap-query ldapauth