mirror of
https://github.com/open-webui/docs.git
synced 2026-11-05 01:38:13 +00:00
[PR #1407] [MERGED] docs: correct the SSO, LDAP and SSO troubleshooting pages against oauth.py and auths.py #1372
Labels
No labels
bug
documentation
documentation
duplicate
enhancement
enhancement
good first issue
good first issue
good first issue
help wanted
help wanted
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/docs#1372
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
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?
📋 Pull Request Information
Original PR: https://github.com/open-webui/docs/pull/1407
Author: @silentoplayz
Created: 9/18/2026
Status: ✅ Merged
Merged: 9/18/2026
Merged by: @Classic298
Base:
main← Head:docs/auth-pages📝 Commits (1)
2f11a58docs: correct the SSO, LDAP and SSO troubleshooting pages against oauth.py and auths.py📊 Changes
3 files changed (+33 additions, -30 deletions)
View changed files
📝
docs/features/authentication-access/auth/ldap.mdx(+8 -8)📝
docs/features/authentication-access/auth/sso/index.mdx(+15 -14)📝
docs/troubleshooting/sso.mdx(+10 -8)📄 Description
Summary
I compared the SSO overview, the SSO troubleshooting page and the LDAP page with
utils/oauth.py,routers/auths.py,config.pyand the admin Authentication settings ondev.SSO overview:
WEBUI_URLis not what builds the redirect URI. The provider's*_REDIRECT_URIvariable does, or the incoming request URL when that is unset.WEBUI_URLonly decides where the browser is sent after the callback. The Microsoft and OIDC redirect variables are optional overrides, not requirements.OPENID_PROVIDER_URLis no longer needed for Google or Microsoft sign-out. The discovery document is resolved from the provider the session was created with.ENABLE_PROFILE_IMAGE_URL_FORWARDINGdoes not govern SSO avatars: the login flow stores the IdP picture as a data URI. The picture is fetched with the access token during the callback, so it does not depend on a refresh token either.OAUTH_ALLOWED_ROLESandOAUTH_ADMIN_ROLEShave defaults, a non-matching role is refused with 403 rather than given the default role, the groups claim defaults togroups, an empty claim leaves memberships alone, and admins are synced like everyone else.SSO troubleshooting:
ENABLE_OAUTHis the master switch andENABLE_OAUTH_SIGNUPis only for account creation, the OAuth handshake timeout isOAUTH_TIMEOUT(the OAuth client is httpx-based, soAIOHTTP_CLIENT_TIMEOUTdoes nothing for it), Microsoft does not needOPENID_PROVIDER_URL, and the callback error text varies by failure.LDAP: the switch is labeled LDAP under Authentication, settings apply on the next login without a restart, new accounts get the instance default role (
pendingby default) with the first account becoming admin, the defaults forLDAP_USE_TLSandLDAP_VALIDATE_CERTare true, and StartTLS is not supported sinceLDAP_USE_TLSonly opens implicit TLS.Related issue or discussion
None.
Checklist
Notes for reviewers
Sources on
dev: the redirect URI resolution and picture handling inutils/oauth.py, the role and group mapping there, the sign-out discovery resolution and the LDAPServer(...)construction inrouters/auths.py,oauth_client_kwargsinconfig.pyfor the timeout,insert_new_authinmodels/auths.py, and the LDAP section ofAuthentication.svelte.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.