mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-13 03:13:58 +03:00
FreeIPA and LDAP group sync #2691
Closed
opened 2026-02-05 04:48:19 +03:00 by OVERLORD
·
13 comments
No Branch/Tag Specified
development
l10n_development
release
v25-12
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
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#2691
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 @samip5 on GitHub (Mar 2, 2022).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
Using FreeIPA with LDAP and trying to get LDAP groups to sync
Exact BookStack Version
v22.02.1
Log Content
No response
PHP Version
No response
Hosting Environment
Linuxserver.io Docker container with nginx reverse proxy
@samip5 commented on GitHub (Mar 2, 2022):
How can I map LDAP groups to Bookstack roles? I don't want to create exact replicas of the roles in LDAP?
I'm using the baseDN:
cn=accounts,dc=redacted,dc=redacted,dc=fi@ssddanbrown commented on GitHub (Mar 2, 2022):
Hi @samip5,
My video here explains LDAP group mapping with BookStack:
https://youtu.be/50qw_LkhwoM?t=1126
Around the
27:45timestamp of the video I talk about mapping groups to roles with differing names.@samip5 commented on GitHub (Mar 2, 2022):
Oh, thank you. Somehow didin't even tought to look if there's video docs about it, I think that should probably be created into the docs site as well, or have a link to the video there next to LDAP Group mappings.
Can I not do those mappings from an .env file? I would love to be able to do those there, so that's more easy to do ansible on.
@ssddanbrown commented on GitHub (Mar 2, 2022):
Yeah, am planning to do this, the videos are fairly new.
No, since the BookStack roles can be dynamic (managed within the interface) I'd look to keep this mapping within the interface alongside other role detail. It is just a text field within the database though, on the
rolestable (If you can ansible up some cheeky database update commands).@samip5 commented on GitHub (Mar 2, 2022):
co-workers might not like that.... even if that is more than likely possible.
@ssddanbrown commented on GitHub (Mar 2, 2022):
Sure, but I'm not keen to add an optional system for mapping, for an optional component of an optional authentication system 😬
I'll keep this open as a reminder to add video links to our docs to support future readers.
@samip5 commented on GitHub (Mar 2, 2022):
Also, in my FreeIPA, the solution in https://github.com/BookStackApp/BookStack/pull/2753#issuecomment-843558165 doesn't seem to work anymore. Using FreeIPA v4.9.0.
Bookstack doesn't seem to find any groups when set to use memberOf and Base DN:
cn=accounts,dc=redacted,dc=redacted,dc=fiShould those be visiable when trying to login with
LDAP_DUMP_USER_DETAILSenabled?@ssddanbrown commented on GitHub (Mar 2, 2022):
No, not for LDAP, group fetching is done via secondary lookups after the user is dumped for this option.
The solution in that thread was to add an additional filter to the
LDAP_USER_FILTERoption to prevent matching against duplicates. Did you update theLDAP_USER_FILTER? What part is not working?@samip5 commented on GitHub (Mar 2, 2022):
I'm sorry but what filter there? I did not spot any changes to that filter there? I just changed my base DN to the one with
cn=accounts.Then how should I debug this properly?
@samip5 commented on GitHub (Mar 2, 2022):
It seems anonymous bind will not see mail address nor the groups users are members of.
However it also created an expection when I logged-in while it edited the user to be admin.
Exception Content
@ssddanbrown commented on GitHub (Mar 2, 2022):
Within #2753 there were two potential solutions I put forward, changing base DN or altering the
LDAP_USER_FILTERto only target one set of users. I'm not sure what approach they used though. Might have been the base DN change.Debugging options for LDAP groups are limited within BookStack to be honest. I think most people may debug via using
ldapsearchon the command line from the same machine, using the same options to emulate the BookStack calls.Adding the below between these two lines would dump out the groups although after some BookStack processing.
You might need
APP_DEBUG=trueenabled while doing that (Can potentially expose details while enabled).@samip5 commented on GitHub (Mar 2, 2022):
It seems that the exception only happens if the user already exists, but doesn't for new one with group sync working.
It does work though still, it just throws an exception too.
@ssddanbrown commented on GitHub (Mar 3, 2022):
YouTube links added to docs in
9e9e77c114so will therefore close this off.@samip5 If that's exception is a reproducible error feel free to raise an issue for it. Not sure how that can occur in normal usage unless you're replacing numeric IDs in the URL with words, but might point to a bad link somewhere.