mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-06 00:59:39 +03:00
Integrate LDAP with Roles System #67
Closed
opened 2026-02-04 16:29:37 +03:00 by OVERLORD
·
4 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
🛠️ Enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#67
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 @ssddanbrown on GitHub (Mar 8, 2016).
@ssddanbrown commented on GitHub (Jan 15, 2017):
Sorry this issue has been open for so long. I was hoping to add this in the next release (v0.14) but my limited knowledge of LDAP is making this difficult. If someone can answer the below it will help my understanding of LDAP so I can implement this feature:
memberUID?)?memberOfbut this does not seem to be standard on OpenLDAP?After looking around, KanBoard seem to have good support for LDAP including groups so maybe inspiration should be taken from there. It looks like it's going to be easier to get the groups of a user rather than getting the users of a group.
@AceBlade258 commented on GitHub (Nov 20, 2017):
First, I am highly interested in this feature, and would love to assist/see it make progress. I have an installation in place at work, and this functionality is the one thing holding us back from a company-wide rollout.
For group management in LDAP there isn't really a "standard", as it is up to whomever implemented the LDAP schema. The only time there are standards to work with are when LDAP is part of a larger directory service such as Active Directory, or FreeIPA/RedHat IDM. Most LDAP auth implementations focus on supporting them, as they are by far the most widely-deployed LDAP implementations.
as far as I am aware of,
memberOfis the most commonly used method of determining if a user is a member of a group, however some POSIX-only implementations of LDAP usememberUidinstead. Also, as far as I am aware, it is more normal to get the groups of a user than the users of a group.Please let me know if I can help test this: I have two installations in my lab I can test against with AD and IPA authentication set up. I would also be more than happy to spin up additional testing instances of any of the needed services.
@brennanmurphy commented on GitHub (Apr 20, 2018):
Hi @ssddanbrown, I was wondering if you still are working on this, as I've been activity looking at deploying Bookstack at my workplace, and this is also holding us back. If you don't have a lot of done on this, I would be happy to take a run at making this work in the next few weeks.
I would agree with @AceBlade258 that
memberOfis more common, as most of the installations of an LDAP server I've seen do try to replicate an Active Directory structure.You are right that it will be easier to get the groups of a user rather than users of a group. I would also say that some sort of parent group loop needs to be implemented, as I've seen major deployments of OpenLDAP with 4 to 5 levels of parent-child relationships with groups, for example this is common at university campuses.
Please let me know if you would like help completing this, as I worked on ldap integrations for single sign-on systems in the past, and I was looking through the code yesterday and think know the path I would take to make this work.
@ssddanbrown commented on GitHub (Apr 21, 2018):
Hi @brennanmurphy,
I've made no real work on this, Just tried to work out the logic and got confused with the LDAP specifics. Absolutely feel free to take a crack at this one if happy to do so.
I'm happy to support you on this any way I can.