mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-08 03:09:39 +03:00
LDAP: Adding second AD group crashes BookStack — admins still require manual permissions #5444
Open
opened 2026-02-05 10:04:14 +03:00 by OVERLORD
·
9 comments
No Branch/Tag Specified
development
further_theme_development
l10n_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
No Label
🐕 Support
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#5444
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @SudoPan on GitHub (Sep 30, 2025).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
I have connected BookStack to our Active Directory (AD) via LDAP and I am using the LDAP_USER_FILTER.
I want two AD groups to map to different BookStack roles:
AD_WikiAdmin → BookStack Admins
AD_WikiViewer → BookStack Viewers
I followed the BookStack documentation, but I can't get this working.
What I tried
Configured LDAP authentication and LDAP_USER_FILTER.
Got a single-group setup working to some extent.
Tried adding a second group for viewers using the same LDAP configuration approach.
Expected behavior
Users in AD_WikiAdmin should be automatically assigned the Admin role.
Users in AD_WikiViewer should be automatically assigned a Viewer role (read-only).
Actual behavior
Admin users still need to be granted Admin permissions manually after their first login.
When I add a second AD group (for viewers) to the LDAP configuration, BookStack crashes/unusable.
Hope you can help me
Exact BookStack Version
25.02.5
Log Content
Hosting Environment
PHP 8.3.6
Ubuntu 24.04.2 LTS
@ssddanbrown commented on GitHub (Sep 30, 2025):
Hi @SudoPan,
When you say the following:
Can you confirm exactly what you're changing to achieve this?
@SudoPan commented on GitHub (Oct 1, 2025):
Hello @ssddanbrown
I tried something like this in the .env file.
LDAP_GROUPS=CN=Bookstack-Viewer,OU=Groups,DC=business,DC=local:viewer
LDAP_GROUPS=CN=Bookstack-Admin,OU=Groups,DC=business,DC=local:admin
I tried many things but dont get it to work that i got an Second AD Group from the AD only to View my shared Books / Sites from BookStack
@ssddanbrown commented on GitHub (Oct 1, 2025):
@SudoPan Are you attempting to follow an LLM or AI for configuring this?
If so, please don't. There's no
LDAP_GROUPSused by BookStack. Remove those options.Group matching is done based on fetched "memberOf" group CN values matched with BookStack role names (or external auth ID values where set). Please read our documentation on LDAP group sync for more specific details.
@SudoPan commented on GitHub (Oct 1, 2025):
Good day @ssddanbrown
Thank you for trying to help me.
I tried to set this up using the documentation and with the help of an AI.
When I read through the documentation, I’m still missing one small piece of information that I don’t fully understand.
In the documentation, I don’t find the section about working with two AD groups.
Currently, I’m working with the following setup, where the group BookStack_Admin is allowed to use the wiki:
Activate LDAP Groups
LDAP_USER_TO_GROUPS=true
LDAP_GROUP_ATTRIBUTE=memberOf
User Group for BookStack
LDAP_USER_FILTER="(&(objectClass=user) (SAMAccountName=${user}) (memberOf=CN=BookStack_Admin, OU=Groups, DC=my, DC=local))"
LDAP_USER_ATTRIBUTE=sAMAccountName
Now, I would like to reconfigure this so that the AD group BookStack_Admin directly gets the Admin role in BookStack.
Additionally, I want to add a second AD group, BookStack_Viewer, which should directly receive the Viewer role in BookStack.
I’m not sure if this is even possible, since I can’t really figure it out from the documentation.
@ssddanbrown commented on GitHub (Oct 5, 2025):
Assuming that your LDAP system is providing valid
memberOfvalues, all you'd need to do is edit the "Admin" role in BookStack, then set the "External Authentication IDs" field tobookstack_admin.Same as above but for the "Viewer" role in BookStack, setting
bookstack_viewerin the "External authentication IDs" field.You'll also need to remove the
(memberOf=CN=BookStack_Admin, OU=Groups, DC=my, DC=local)part of your user filter to allow such users to log-in (or alternatively you could add extra groups in anORconfiguration within your filter query).@SudoPan commented on GitHub (Oct 7, 2025):
That sounds good.
Do I understand correctly that as soon as I set up the external authentication IDs (does that simply mean entering a number)?
What would that look like in the .env file? Do you perhaps have an example?
Thanks for your help.
@ssddanbrown commented on GitHub (Oct 7, 2025):
The value you enter should match the
CNvalue of the role, formatted as per our docs. So to match withmemberOf=CN=BookStack_Admin, OU=Groups, DC=my, DC=localyou'd use a value ofbookstack_admin.It's not part of the .env file config, but a field in the UI seen when editing a specific role (when LDAP/SAML2/OIDC is active).
See my video from about 21:05 where I add group syncing and perform some mapping using this field:
https://youtu.be/50qw_LkhwoM?t=1265
@SudoPan commented on GitHub (Oct 8, 2025):
Ah Thank you i thing i had misunderstanding something in the configuration.
I will try it and let you know.
Thank you for the help
@SudoPan commented on GitHub (Oct 17, 2025):
Hello @ssddanbrown,
Sorry for the late message.
I followed the steps from your video and adjusted my setup accordingly. I removed my specific memberOf path and replaced it with the generic configuration as shown in the video:
Enable LDAP group sync, set to 'true' to enable.
LDAP_USER_TO_GROUPS=true
LDAP user attribute containing groups, defaults to 'memberOf'.
LDAP_GROUP_ATTRIBUTE="memberOf"
Remove users from roles that don't match LDAP groups.
Note: While this is enabled, the "Default Registration Role" (editable within the
BookStack settings view) will be considered a matched role and assigned to the user.
LDAP_REMOVE_FROM_GROUPS=false
After that, I added my bookstack_admin group to the Admin role in the external authentication ID settings.
However, once I make these changes, I can no longer log in.
I tested this with both my existing bookstack_admin group and a newly created group, but the login still fails in both cases.
Is there an error log I can check to find out what’s going wrong?
Thanks in advance for your help!