mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-05 08:39:55 +03:00
[Bug Report]: Login catch-22 when switching to OIDC authentication #2523
Closed
opened 2026-02-05 04:24:33 +03:00 by OVERLORD
·
4 comments
No Branch/Tag Specified
development
l10n_development
further_theme_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
🐛 Bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#2523
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 @Northguy on GitHub (Dec 6, 2021).
Describe the Bug
I would like to switch from 'regular' login to OIDC login. I have configured Authelia as an OpenID client and seem to succesfully proceed through the authentication process, until Authelia returns me back to Bookstack. Bookstack responses with 'user with e-mail xxxxx@xxxx.com already exists, which is obvious as I would like to login with the same user I created in Bookstack as I have in Authelia.
According to the documentation, Bookstack should make a match between both users, based on e-mail. Is this a bug or am I doing something wrong? I am a bit at a loss where to start debugging.
Steps to Reproduce
Expected Behaviour
Existing user in Bookstack should be recognized by e-mail address and OIDC user should provide acces.
Screenshots or Additional Context
No response
Exact BookStack Version
BookStack v21.11.2
PHP Version
??
Hosting Environment
Running in Docker with image https://docs.linuxserver.io/images/docker-bookstack behind Traefik reverse proxy and Authelia as OIDC provider
@ssddanbrown commented on GitHub (Dec 6, 2021):
BookStack matches OIDC provided users to BookStack users based upon a unique OIDC provided ID, against the "External Authentication ID" value for a user.
If your user was initially created with non-OIDC auth, then the email will already exist in BookStack but since the BookStack user does not share the same unique ID (Since a standard auth user won't have an "External Authentication ID" value) they won't be matched together (It opens up some security concerns if we start matching based on email from other auth sources).
To remedy for your user you can:
Depending on container setup, this may prove tricky. The "External Authentication ID" field can alternatively be found on the users table in the database as an alternative.
@Northguy commented on GitHub (Dec 6, 2021):
Hi @ssddanbrown ,
Thanks. In order to edit my user while being logged in: how do I change the auth method to oidc while logged in?
I did change the
AUTH_METHOD=oidcenvironment variable in my .env file as well as login via CLI of my container, but I assume these are only read when I restart Bookstack. Restarting the bookstack instance, will result in being logged out again and put me back at the catch-22 of not being able to login?So how do I 'hot' switch to OIDC?
@ssddanbrown commented on GitHub (Dec 6, 2021):
@Northguy That variable should be read upon each request ideally so should be able to hot-switch. Variables on the container environment could interfere/override though and not be hot-switchable.
I would try remove any
AUTH_METHODenvironment variables at a container/docker level and just change via the.envfile. Hopefully it should then be 'hot' switchable.@Northguy commented on GitHub (Dec 7, 2021):
@ssddanbrown thanks for the pointer in the right direction. For future reference:
The Linuxserver.io bookstack docker container requires a volume share. In this share the .env file is created, based on initial docker-compose environment variables. It is possible to add additional variables there (/config/www/.env) and these indeed act as 'hot' switchable.