BookStack + openLDAP => Как получить роли BookStack для загрузки из групп LDAP? - PullRequest
1 голос
/ 18 марта 2019

Мне нужна помощь, чтобы заставить 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:
...