Настройка bitnami openLDAP с memberOf и конфигурацией пользователя ldif.

Вопрос или проблема

Я пытаюсь настроить сервер Bitnami LDAP (docker) с функциональностью memberOf. Я подключил каталоги схем (с overlay ldif) и ldif для пользователей и групп.

Вот мой overlay:

# Загрузка модулей
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: memberof
olcmoduleload: refint
olcModulePath: /opt/bitnami/openldap/lib/openldap

#overlay memberof
dn: olcOverlay=memberof,olcDatabase={2}mdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

#overlay refint
dn: olcOverlay=refint,olcDatabase={2}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
olcOverlay: refint
olcRefintAttribute: owner
olcRefintAttribute: manager
olcRefintAttribute: member
olcRefintAttribute: memberOf

а здесь пользователи и группы:

dn: dc=maxcrc,dc=com
changetype: add
objectClass: domain
objectClass: top
dc: maxcrc

dn: ou=People,dc=maxcrc,dc=com
changetype: add
objectclass: top
objectclass: organizationalUnit
ou: People
description: Контейнер для пользовательских записей

dn: ou=Groups,dc=maxcrc,dc=com
changetype: add
objectclass: top
objectclass: organizationalUnit
ou: Groups
description: Контейнер для записей групп

dn: cn=admingroup,ou=Groups,dc=maxcrc,dc=com
changetype: add
objectClass: groupOfNames
cn: admingroup
member: cn=Jack Miller,ou=People,dc=maxcrc,dc=com

dn: cn=Jack Miller,ou=People,dc=maxcrc,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
cn: Jack Miller
sn: miller
userPassword: 1234

Если я пытаюсь добавить “memberOf: cn=admingroup,ou=Groups,dc=maxcrc,dc=com” к пользователю miller, сервер не запускается. Возможно, существует пример ldif, который должен работать?

Я пробовал примеры из Интернета, уже читал вопросы/ответы на StackOverflow, но ничего не помогло. В режиме отладки возникает эта ошибка (32 – неверный DN???):

memberof_value_modify DN=”cn=jack miller,ou=people,dc=maxcrc,dc=com”
add memberOf=”cn=admingroup,ou=Groups,dc=maxcrc,dc=com” failed err=32

Вы не можете добавить MemberOf. Он создается автоматически.
Добавьте пользователя в группу, и у вас будет memberOf.

Для добавления участников вам также нужно подключить каталог /ldifs, но для начала я бы добавил первых пользователей через compose файл.

  - LDAP_USERS=user01,user02
  - LDAP_PASSWORDS=password1,password2

Ответ или решение

Чтобы настроить сервер Bitnami OpenLDAP с использованием функциональности memberOf и правильно применить конфигурацию LDIF для пользователей и групп, вы должны следовать некоторым ключевым шагам. Давайте подробно разберем, что необходимо сделать, чтобы успешно внедрить данную функциональность на вашем сервере.

Теоретическая часть

Функциональность memberOf в LDAP позволяет автоматически определять, в каких группах состоит пользователь, добавляя атрибут memberOf к записи пользователя. Это упрощает управление, так как вы можете легко определить, к каким группам принадлежит пользователь, без необходимости вручную обновлять информацию о членстве при каждом изменении.

OpenLDAP предоставляет overlay (перекрытие), называемое memberOf, которое автоматически обновляет атрибут memberOf для записи пользователя при изменении его членства в групповом объекте.

Примерная реализация конфигурации

Вы уже правильно начали с загрузки необходимых модулей и настройки overlay в вашем конфигурационном файле. Но для начала, важно убедиться, что структура вложенных директорий правильно организована, и все зависимости успешно загружены.

Пример настройки overlay

# Загружаем модули
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: memberof
olcmoduleload: refint
olcModulePath: /opt/bitnami/openldap/lib/openldap

# Настройка overlay memberof
dn: olcOverlay=memberof,olcDatabase={2}mdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

# Настройка overlay refint
dn: olcOverlay=refint,olcDatabase={2}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
olcOverlay: refint
olcRefintAttribute: owner
olcRefintAttribute: manager
olcRefintAttribute: member
olcRefintAttribute: memberOf

Практическая реализация и применение конфигурации

  1. Убедитесь в корректности DNs: Ошибка, с которой вы столкнулись ("err=32"), может указывать на неверный DN. В вашем примере cn=Jack Miller,ou=People,dc=maxcrc,dc=com возможно имеет неправильный формат. Убедитесь, что все DNs написаны правильно и соответствуют существующим записям в вашей базе данных.

  2. Проверьте наличие необходимых схем и служб: Убедитесь, что все необходимые схемы загружены и включены в конфигурацию с использованием правильного пути и порядка.

  3. Попробуйте добавить пользователя к группе вместо явного указания memberOf: Атрибут memberOf не должен устанавливаться вручную; он будет автоматически модифицирован overlay. Поэтому вам необходимо лишь добавить пользователя в группу cn=admingroup и проверить, обновляется ли информация:

    dn: cn=admingroup,ou=Groups,dc=maxcrc,dc=com
    changetype: modify
    add: member
    member: cn=Jack Miller,ou=People,dc=maxcrc,dc=com
  4. Проверка работоспособности с помощью тестовых пользователей: Используйте ваши переменные окружения для начальной загрузки пользователей через файл компоновки (например, Docker Compose):

    environment:
     - LDAP_USERS=JackMiller
     - LDAP_PASSWORDS=СекретныйПароль
  5. Перезагрузите сервер после модификаций: После всех изменений и загрузки новых данных перезагрузите OpenLDAP, чтобы применить изменения.

  6. Отладка и логирование: Включите подробное логирование для диагностики. Это поможет выявить проблемы в эндпойнтах или DNs, если те существуют. Используйте команды для проверки записанных данных:

    ldapsearch -x -LLL -H ldap://localhost -b "dc=maxcrc,dc=com"

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...