mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-08 11:19:36 +03:00
Using SAML SSO (Shibboleth) to create users #3838
Closed
opened 2026-02-05 07:38:11 +03:00 by OVERLORD
·
5 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#3838
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 @cfschulte on GitHub (Jun 7, 2023).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
I asked a colleague who has been using Shibboleth/SAML2 for login and account creation. As far as we could tell, I have my .env file set up correctly so I think it's something in my system setup. He is using a pre-configured Docker Container, which my department avoids because of security concerns and we would like to avoid that extra layer of abstraction.
I am able to put the bookstack website behind our campus's SSO, but I am sent to a login error page if I set AUTH_METHOD=saml2. Has anyone worked with Shibboleth SSO? I have set SAML2_EMAIL_ATTRIBUTE, SAML2_EXTERNAL_ID_ATTRIBUTE, and SAML2_DISPLAY_NAME_ATTRIBUTES to their respective urn strings, and even uncommented those in the attribute-map.xml file.
I've tried setting the apache shib.conf to both the DocumentRoot, "/", and the login page, "/login". If I set shibboleth directory to /login, I get an interesting error: The POST method is not supported for route Shibboleth.sso/SAML2/POST. Supported methods: GET, HEAD.
Does anybody have experience setting up a Linux apache2/shibboleth server to work with BookStack?
Thanks,
Chris
Exact BookStack Version
v23.05.1
Log Content
No response
PHP Version
8.1.2
Hosting Environment
Ubuntu 22.04
Apache/2.4.52 (Ubuntu)
shibboleth 3.3.0
@ssddanbrown commented on GitHub (Jun 7, 2023):
Hi @cfschulte,
Unfortunately I have not experience with Shibboleth, so will be blind in being able to properly guide you.
From some quick searching, this file seems to be mostly used when Shibboleth is being used as a service-provider, looking like it's built as an apache module to add authentication in some way.
I'd expect BookStack to be the service provide here, directly communicating with your SAML IdP, I would not expect anything SAML built-into the webserver side for BookStack specifically.
Can I confirm that you do expect BookStack to be the IdP in this scenario, and Shibboleth is being used as an IdP?
@cfschulte commented on GitHub (Jun 7, 2023):
Thank you @ssddanbrown ,
I have tried to set the SAML2_IDP_ENTITYID to the bookstack server, but it had a problem reading it. I just displays an xml file with this message: "This XML file does not appear to have any style information associated with it. The document tree is shown below."
I set both that and SAML2_IDP_SSO to our central login and it kind of works, but it does not create accounts. This is how the colleague using Docker has the .env set.
I'm not an expert on SAML2. This is the quick description of how our systems are set up:
"The NetID Login Service SAML2 Identity Provider (which runs on Shibboleth) is UW Madison's central Authentication and Authorization service. Application administrators can integrate their web-based applications with NetID Login Service and not have to set up their own authentication and authorization."
I saw you mention in other posts here that you're not real experienced with Shibboleth, so I really appreciate that you took a look at it. My hope is that maybe someone else has gotten this to fully work and can offer insight.
@ssddanbrown commented on GitHub (Jun 10, 2023):
The
SAML2_IDP_ENTITYIDbookstack option should not point to the BookStack server, is should point to your IDP system's entityID endpoint (Which I assume is NetID/Shibboleth).That is a common browser warning when viewing XML files. It should not really arise or interfere in the server-to-server communication paths of SAML2. If you're trying to view the plain XML to download/copy for IDP usage, you can right-lick the page then "View Source".
@cfschulte commented on GitHub (Jun 22, 2023):
@ssddanbrown, I did get this to work, eventually. I am using apache2 and shibboleth SAML on Ubuntu 22.04. I do need both apache2 and shibd running. However, I had to disable apache's shib module and shib.conf, and run SAML directly through BookStack.
I also had to work with the IdP to make sure that everything was in the metadata that needed to be there. For instance the SAML2_EMAIL_ATTRIBUTE and SAML2_DISPLAY_NAME_ATTRIBUTES urns where not there by default.
Thanks,
Chris
@ssddanbrown commented on GitHub (Jun 22, 2023):
Good to hear you got things working!