我需要一些帮助来让 BookStack 和 OpenLDAP 自动将 LDAP 组映射到 BookStack 角色。
我通过 LDAP 进行了 BookStack 身份验证,但所有用户似乎都只有查看者权限。
我正在使用这个 BookStack 泊坞窗图像:https ://github.com/solidnerd/docker-bookstack
而这个 OpenLDAP docker 镜像:https ://github.com/osixia/docker-openldap
对于任何拥有 LDAP 组 -> BookStack 角色的人,您能提供一些建议吗?
我读过关于在使用 openLDAP 时需要添加 memberOf 覆盖的相互矛盾的意见。有的文章说需要添加,但是我好像没有config权限(或者不知道如何用docker镜像正确访问LDAP服务器)。我还在 osixia/docker-openldap 中看到了这个已关闭的问题,如果我正确设置 LDAP 条目,似乎 memberOf 应该可以工作:https ://github.com/osixia/docker-openldap/issues/258
据我所知,如果 memberOf 正在工作,如果我有一个名为“Docs Admin”的 LDAP 组,那么作为该组成员的用户应该会自动加载 Admin 角色。LDAP Group -> BookStack Roles 的某处是否有列表?用户需要成为哪个 LDAP 组的成员才能获得 BookStack 管理员的角色?
有没有人有关于我需要创建的确切 LDAP 结构的任何详细信息才能使其正常工作?
使用 osixia/docker-openldap 映像时是否需要安装某种 memberOf 覆盖?有没有人有具体的步骤(我在托管 docker 容器的主机上尝试了许多不同的示例,但它们因“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/ )
这是我的 BookStack docker-compose.yml:
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: