Мне нужна помощь, чтобы заставить BookStack и OpenLDAP работать для автоматического сопоставления групп LDAP с ролями BookStack.
У меня работает аутентификация BookStack через LDAP, но, похоже, все пользователи имеют только права просмотра.
Я использую этот образ докера BookStack: https://github.com/solidnerd/docker-bookstack
А это изображение докера OpenLDAP: https://github.com/osixia/docker-openldap
Для тех, у кого работают группы LDAP -> роли BookStack, не могли бы вы дать совет?
Я прочитал противоречивые мнения о необходимости добавления оверлея memberOf при использовании openLDAP. В некоторых статьях говорится, что мне нужно добавить его, но у меня, похоже, нет прав на настройку (или я не знаю, как правильно обращаться к серверу LDAP с помощью образа докера). Я также видел эту закрытую проблему в osixia / docker-openldap, которая выглядела так, будто memberOf должен работать, если я правильно настрою записи LDAP: https://github.com/osixia/docker-openldap/issues/258
Из того, что я могу сказать, кажется, что если memberOf работает, если у меня есть группа LDAP с именем "Docs Admin", пользователи, которые являются членами этой группы, должны автоматически загружаться с ролью Admin. Есть ли где-нибудь список группы LDAP -> Роли BookStack? В какую группу LDAP должен войти пользователь, чтобы получить роль администратора BookStack?
У кого-нибудь есть какие-либо подробности относительно точных структур LDAP, которые мне нужно создать, чтобы заставить это работать?
Нужно ли устанавливать какое-то наложение memberOf при использовании образа osixia / docker-openldap? У кого-нибудь есть конкретные шаги (я пробовал несколько разных примеров на хост-машине, на которой размещаются док-контейнеры, и они терпят неудачу с «ldap_modify: достаточный доступ (50)» (например, https://devopsideas.com/planning-of-ldap-dit-structure-and-config-of-overlays-access-ppolicy/ или https://www.adimian.com/blog/2014/10/how-to-enable-memberof-using-openldap/)
Вот мой docker-compose.yml BookStack:
version: '2'
services:
mysql:
image: mysql:5.7.21
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=secret
volumes:
- mysql-data:/var/lib/mysql
bookstack:
image: solidnerd/bookstack:0.25.2
depends_on:
- mysql
environment:
- APP_DEBUG=true
- DB_HOST=mysql:3306
- DB_DATABASE=bookstack
- DB_USERNAME=bookstack
- DB_PASSWORD=secret
- AUTH_METHOD=ldap
- LDAP_SERVER=ldap://192.168.0.2:389
- LDAP_BASE_DN=dc=example,dc=com
- LDAP_DN=cn=admin,dc=example,dc=com
- LDAP_PASS=admin
- LDAP_USER_FILTER=(&(uid=$${user}))
- LDAP_EMAIL_ATTRIBUTE=mail
- LDAP_VERSION=3
- LDAP_USER_TO_GROUPS=true
- LDAP_GROUP_ATTRIBUTE="memberOf"
- LDAP_REMOVE_FROM_GROUPS=false
volumes:
- uploads:/var/www/bookstack/public/uploads
- storage-uploads:/var/www/bookstack/public/storage
ports:
- "8080:80"
volumes:
mysql-data:
uploads:
storage-uploads: