LDAP,列表组我是使用通配符的成员?

时间:2018-04-12 10:57:48

标签: javascript node.js express ldap ldapjs

所以我在ExpressJS中编写应用程序后端,使用LDAP对我们的域进行身份验证。我有3个AD小组。

  • foo_bar这样的名称
  • Foo_bert

我如何询问LDAP"任何以Foo *开头的群组,我是哪些群组?"响应尽可能简单。

使用javascript ldapjs语法的加分点,但不是必需的。

我之前从未真正使用过LDAP,而我的第一印象是相当挑剔

1 个答案:

答案 0 :(得分:0)

  

如何询问LDAP“以Foo *开头的任何群组,我是哪些群组?”响应尽可能简单。

按照正常情况发出LDAP查询here

例如,我想查找displayName BUILDING_FOO的所有记录,但我还要排除某些记录。所以我的LD​​AP查询看起来像:

(&(displayName=BUILDING_*)(!(cn=ILM_BUILDING_EXAMPLE)))

因此,根据您的要求,我们说base DN为OU=GROUPS,DC=example,DC=com。然后我们会说您要查找的组的属性为groupName,因此您的LDAP查询可以简单如下:

(groupName=Foo*)

至于LDAPjs,它看起来像是:

// Setup/configuration of LDAPjs is omitted, see official docs.

const options = {
    filter: '(groupName=Foo*)',
    scope: 'sub'
}

ldapClient.search('OU=GROUPS,DC=example,DC=com', options, (error, result) => {
    if (error) {
        debug(`Unable to search for groups. (${error.message})`)
        process.exit(1)
    }

    result.on('searchEntry', entry => {
        // Do something with the entry
        console.log(entry)
    })
})