Получить список всех участников группы LDAP

Я использую FreeIPA в качестве LDAP-бэкенда для своего приложения-фляги. До сих пор я использовал flask-simpleldap с OpenLDAP, чтобы получить членство пользователя в группе, что прекрасно работает со следующими параметрами:

LDAP_BASE_DN="dc=myrealm,dc=com"
LDAP_REALM_NAME="MyFunRealm"
LDAP_OBJECTS_DN="dn"
LDAP_USER_OBJECT_FILTER="(&(objectclass=inetorgperson)(uid=%s))"
LDAP_GROUP_MEMBERS_FIELD="member"
LDAP_GROUP_OBJECT_FILTER="(&(objectclass=groupofnames)(member=%s))"
LDAP_GROUP_MEMBER_FILTER="member=%s"
LDAP_GROUP_MEMBER_FILTER_FIELD="cn"

Я хочу изменить структуру LDAP моих пользователей, чтобы размещать группы внутри групп, но приведенные выше настройки дают только группу "первого уровня" пользователей. (Извините, я не знаком с LDAP и его терминологией).

Как я могу изменить запрос / фильтр, чтобы получить список всех групп, в которые входит пользователь, через членство в группе?

1 ответ

Я не думаю, что это возможно, учитывая ваши настройки (например, колба + openldap)

OpenLDAP не имеет (насколько мне известно) встроенного механизма для выполнения фильтрации вложенных групп. При этом фляга выполнит запрос за вас, поэтому вы не сможете легко выполнить рекурсивный поиск.

В другом каталоге (например, AD) вы можете указать расширяемое правило сопоставления для фильтрации вложенных групп, что-то вроде этого:

(&(objectclass=groupofnames)(member:1.2.840.113556.1.4.1941:=%s))

Но это конкретное расширяемое правило сопоставления не существует в OpenLDAP

Другие вопросы по тегам