OpenLDAP ACL для предотвращения получения анонимным пользователем списка всех групп

Я пытаюсь защитить существующую установку OpenLDAP, в которой требуется разрешить анонимному пользователю получать информацию о записях, если он знает uid конкретной записи пользователя в LDAP. Предположим структуру, как показано ниже:

dc=example,dc=com
  ou=People
    uid=user1
    uid=user2
  ou=Groups
    cn=user1
      memberUid:user1
    cn=user2
      memberUid:user2
    cn=common
      memberUid:user1
      memberUid:user2

Теперь, если анонимные знают, что запись uid = user1 существует в LDAP, они должны иметь возможность получить список групп, членом которых является этот пользователь. Однако они не должны иметь возможность обнаруживать другие группы.

Таким образом, ldapsearch -b "ou = Groups, dc = example, dc = com" ничего не должен возвращать, в то время как ldapsearch -b "ou = Groups, dc = example, dc = com" "(& (objectClass = posixGroup) (memberUid = user1))" должен возвращать все группы, участником которых является user1.

Я пробовал несколько разных ACL, но пока безуспешно. Либо поиск работает, но также может перечислить все группы, либо не может перечислить все группы, но тогда поиск не работает.

Есть ли способ добиться желаемого поведения с помощью списков контроля доступа?

PS: База данных использует стандартную схему nis , поскольку в базе данных уже есть данные, изменение на rfc2307bis не является вариантом (и есть другие причины, по которым такое изменение невозможно в этом случае).

3
задан 14 September 2017 в 09:24
1 ответ

Я не думаю, что это возможно, так как вы не могли ограничить, какие группы можно читать. Тем не менее, OpenLDAP предлагает альтернативный способ, который может помочь вам. Он называется "Reverse Group Maintenance" (см. главу 12.8 в (устаревших) документах ) с оверлеем memberOf. В основном, он ведет список каждой группы, в которую входит пользователь, что позволяет легко искать информацию такого типа.

Для справки, как это сделать современным способом, с помощью cn=config, смотрите здесь .

.
2
ответ дан 3 December 2019 в 06:56

Теги

Похожие вопросы