LDAP, список групп, в которых я участвую подстановочный знак?
Поэтому я пишу бэкэнд приложения в ExpressJS, который аутентифицируется на нашем домене с использованием LDAP. У меня есть 3 группы AD.
- Foo
- foo_bar
- Foo_bert
Как спросить LDAP: "Какие группы начинаются с Foo*, в какие группы я состою?" ответ будет максимально простым.
Бонусные баллы за использование синтаксиса javascript ldapjs, но не обязательны.
Я никогда не использовал LDAP раньше, и мое первое впечатление, что это довольно привередливый
1 ответ
Как спросить LDAP: "Какие группы начинаются с Foo*, в какие группы я состою?" ответ будет максимально простым.
Отправляя запрос LDAP, как обычно, как показано здесь.
Например, я хочу найти все записи, которые имеют displayName
из BUILDING_FOO
, но я также хочу исключить определенные записи. Так что мой запрос LDAP будет выглядеть примерно так:
(&(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)
})
})