mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-07 11:19:38 +03:00
SSO/OICD authentication with OpenID Connect fails #5517
Closed
opened 2026-02-05 10:08:13 +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
🐕 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#5517
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 @mmardegan on GitHub (Nov 25, 2025).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
SSO/OICD authentication with OpenID Connect / OAuth2 server integrated in a eGroupware server fails
With autodiscover active
I get this error immediatly after click in the login screen:
“OICD Discovery Error: Unexpected issuer value found on discovery response”
I have therefore set the following parameters:
OIDC_ISSUER=https://example.com/
OIDC_ISSUER_DISCOVER=true
This is the link to the eGroupware OIDC configuration: https://github.com/EGroupware/egroupware/wiki/OpenID-Connect----OAuth2
This is the discovery response (open via browser), seems ok.
{
“issuer”: “https://example.com/”,
“authorization_endpoint”: “https://example.com/egroupware/openid/endpoint.php/authorize”,
“token_endpoint”: “https://example.com/egroupware/openid/endpoint.php/access_token”,
“jwks_uri”: “https://example.com/egroupware/openid/endpoint.php/jwks”,
“response_types_supported”: [
“code”,
“code id_token”,
“id_token”,
“token id_token”
],
“subject_types_supported”: [
“public”,
“pairwise”
],
“id_token_signing_alg_values_supported”: [
“RS256”,
“ES256”,
“HS256”
],
“userinfo_endpoint”: “https://example.com/egroupware/openid/endpoint.php/userinfo”,
“claims_supported”: [
“sub”,
“iss”,
“name”,
“given_name”,
“family_name”,
“nickname”,
“profile”,
“picture”,
“website”,
“email”,
“email_verified”,
“locale”,
“zoneinfo”,
“roles”,
“groups”
],
“scopes_supported”: [
“openid”,
“basic”,
“email”,
“phone”,
“address”,
“profile”,
“roles”,
“videoconference”,
“groups”,
“email_aliases”
],
“response_modes_supported”: [
“query”
],
“grant_types_supported”: [
“authorization_code”,
“implicit”,
“refresh_token”,
“client_credentials”,
“password_credentials”
],
“token_endpoint_auth_methods_supported”: [
“client_secret_basic”
],
“display_values_supported”: [
“page”,
“popup”
],
“claim_types_supported”: [
“normal”
],
“service_documentation”: “https://github.com/EGroupware/openid”,
“request_uri_parameter_supported”: true,
“require_request_uri_registration”: true,
“end_session_endpoint”: “https://example.com/egroupware/logout.php”
}
With autodiscovery disabled
BookStack activates the connection, eGroupware asks for permission to log in, but then I get this error:
“ID token validation failed with error: Failed to read signing key with error: Unexpected type of the key value provided”
I have therefore set the following parameters:
OIDC_ISSUER=https://example.com/
OIDC_ISSUER_DISCOVER=false
OIDC_PUBLIC_KEY=https://example.com/egroupware/openid/endpoint.php/jwks
OIDC_AUTH_ENDPOINT=https://example.com/egroupware/openid/endpoint.php/authorize
OIDC_TOKEN_ENDPOINT=https://example.com/egroupware/openid/endpoint.php/access_token
OIDC_USERINFO_ENDPOINT=https://example.com/egroupware/openid/endpoint.php/userinfo
Thank you.
Exact BookStack Version
BookStack v25.11.2
Log Content
Hosting Environment
OS Debian 13
PHP 8.4.11
mariadb 11.8.3
@ssddanbrown commented on GitHub (Nov 25, 2025):
Hi @mmardegan,
That is only really shown as a result of a fairly basic check of the
OIDC_ISSUERagainst theissuerin the autodiscovery response. Are you sure the actual values there are 100% exactly the same? No different in trailing slash for example? no difference in starting protocol? Are there any kind of special characters contained within this value?@mmardegan commented on GitHub (Nov 25, 2025):
Hi @ssddanbrown , thank you in advace.
Yes I am sure that the value of the issuer is the same: and also it not contain strange caracter (example.com is not the real domain). If I try to open that url in the same webbrowser I get the json above. The BookStack server also resolve the ip of OICD server.
I dont understand, the servers are in a LAN.
And for the second option, with autodiscovery disabled, is correct this parameter? I get a json, not a key.pem
OIDC_PUBLIC_KEY=https://example.com/egroupware/openid/endpoint.php/jwks
{"keys":[{"alg":"RS256","kty":"RSA","kid":" xxxxxxxxxxxxxxxxx ","use":"sig","n":" xxxxxxxxxxxxxxxxxx ","e":"AQAB"}]}
edit: same json in response if I do a curl in the bookstack server
@ssddanbrown commented on GitHub (Nov 27, 2025):
If you'd like to debug the difference in issue value, to see what BookStack is comparing, you could find the following file and line:
46001d61d0/app/Access/Oidc/OidcProviderSettings.php (L126)Then above that line add:
This should stop the login process before the error, and dump out both issuer values to the browser.
No, the JWKS_URI, which you're using there, is quite a different thing. BookStack needs a
file:///keys/idp-public-key.pemlike reference as per our docs to a PEM format file on the host system.You may be able to find converts for JWKS data (the data found when you visit the JWKS_URI) but I'd be cautious about pasting in cert data into random websites.
@mmardegan commented on GitHub (Nov 27, 2025):
The issue is resolved: but I don't know why.
I did some test: I activeted the autodiscovery
OIDC_ISSUER_DISCOVER=true
and the I try to modify the issuer address
from OIDC_ISSUER=https://example.com/ to OIDC_ISSUER=http://example.com -> I get an error, it can't find the server; than I try
from OIDC_ISSUER=https://example.com/ to OIDC_ISSUER=https://example.com -> it can login on the server.
I'm quite sure I had already try this configuration and it didn't run.
Maybe because in this test i dont comment out this parameter contrary to the previews:
OIDC_PUBLIC_KEY=https://example.com/egroupware/openid/endpoint.php/jwks
OIDC_AUTH_ENDPOINT=https://example.com/egroupware/openid/endpoint.php/authorize
OIDC_TOKEN_ENDPOINT=https://example.com/egroupware/openid/endpoint.php/access_token
OIDC_USERINFO_ENDPOINT=https://example.com/egroupware/openid/endpoint.php/userinfo