0

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

  • Foo_bar
  • Foo_bert

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

使用 javascript ldapjs 语法的奖励积分,但不是必需的。

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

4

1 回答 1

0

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

通过像通常那样发出 LDAP 查询,如下所示

例如,我想查找所有具有displayNameof 的记录BUILDING_FOO,但我也想排除某些记录。所以我的 LDAP 查询看起来像:

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

因此,根据您的要求,假设您的baseDN 是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)
    })
})
于 2018-04-12T16:06:22.827 回答