mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-07 03:09:44 +03:00
Expose "External Authentication IDs" in the environment (.env) file #5194
Closed
opened 2026-02-05 09:47:30 +03:00 by OVERLORD
·
3 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
🔨 Feature 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#5194
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 @Mojo-OG on GitHub (Feb 24, 2025).
Describe the feature you'd like
I am testing/scoping the product, and it is disappointing to see that the ability to map specific values to the External Authentication IDs for the built-in roles does not exist. A similar Feature Request was raised here, but was specifically for OIDC Auth, and was subsequently closed: https://github.com/BookStackApp/BookStack/issues/5081
Whilst I am interested specifically in LDAP, I would think that the External Authentication IDs are not unique in the backend to each authentication mechanism, rather, the content field is mapped to the same input regardless and enabled if the authentication mechanism is something other than
standard.Describe the benefits this would bring to existing BookStack users
In an environment where infrastructure is setup/deployed via Infrastructure as Code (IaC), not exposing these variables to the environment file means that the initial setup of the environment, and subsequent redeployments, requires manual intervention to make the instance useable.
If you deploy the environment as LDAP from the get-go, you cannot login with the default admin user in order to assign admin permissions. Likewise, if you deploy as standard, you can login with the admin account -- but no directory users exist to assign admin privileges to, nor is the
external_auth_idclass exposed in the HTML in order for something to be defined prior to swapping the auth mechanisms around.As it stands, in order to get LDAP authentication (and assumably other auth mechanisms) to an acceptable state after deployment, you need to:
standard, and reload the instance.admin@admin.combuilt-in Admin account.external_auth_idisn't exposed/available with thestandardauth.external_auth_idfor the desired role(s) and allow other users to login without jumping through multiple hoops.Overall this leads to a rather clunky deployment experience.
As such, it would be great to see a mechanism to configure the External Authentication IDs of the built-in roles via the .env file as a bare minimum. What would be even better would be the implementation of some logic where any role can have its External Authentication ID set based on the variable names. Such as:
Where the role names would be case insensitive and trim whitespace, where
AUTH_EXTID_YOURCUSTOMROLENAMEwould map toYour Custom Role Nameif it was named that way in in the application. Because nobody is going to haveYour Custom Role Name,YourCustom Role Name,YOURcustomROLEname, or any other various combinations of what is effectively the same thing.This would cut out the entire set of extra steps I have outlined above, and allow an instance to be deployed with authentication configured as desired immediately.
Can the goal of this request already be achieved via other means?
No, manual intervention is required to complete setup in these situations which is not ideal for automated deployments or IaC environments.
Have you searched for an existing open/closed issue?
How long have you been using BookStack?
Not using yet, just scoping
Additional context
No response
@ssddanbrown commented on GitHub (Feb 24, 2025):
Thanks for the request @Mojo-OG, but as said in #5081, I don't really assure, or want to increase our scope, to allow all UI actions/options to be handled via config options where there's a minor edge-case or desire to suit.
You could technically (unofficially) set/update the external auth values by command or via the database.
The API could also be used, but right now there's no (official) means to gain API details without UI access.
If the main issue is the auth dance, I'd be happy for a specific issue to be raised to show that by default.
I updated the user external auth field to always show (via a collapsible block), I'd be happy to align the same for roles too, to avoid the auth switching dance.
@Mojo-OG commented on GitHub (Feb 25, 2025):
If nothing else, this would at least reduce the teething pains of getting a new instance into a usable state.
What would also be nice is the ability to enable multiple auth methods simultaneously. Previously having used Mediawiki, this is handled by the authentication extensions PluggableAuth (https://www.mediawiki.org/wiki/Extension:PluggableAuth) and LDAPAuthentication2 (https://www.mediawiki.org/wiki/Extension:LDAPAuthentication2), wherein a pseudo-domain for "Local" is added on a drop down on the logon page where the desired auth source can be selected.
I get that the way BookStack and Mediawiki handle things like modifications or extensions will be fundamentally different, but the ability to have both standard and another auth method enabled would further reduce the teething pains with getting an instance setup, since the instance can be deployed with the desired auth method + standard, and the admin user logged in to so that External Authentication IDs can be set on the roles immediately instead of needing to switch auth methods back and forth.
If that doesn't sound feasible though, I'd concede to at least having the External Authentication IDs field exposed.
I assume you'd like me to close and raise the external auth field for roles as a separate issue (and maybe the multiple authentication methods/selection as another feature request if you're feeling benevolent)?
@ssddanbrown commented on GitHub (Feb 25, 2025):
Yes please. I'll go ahead and close this one.
Already requested/open under #2715