快速结论:用 Docker 部署 Open WebUI 并在管理面板里保存了 OAuth / OIDC(例如 Authelia)配置,但登录页始终只显示邮箱密码表单、OAuth login button not shown on sign-in page 时,通常不是网络或 IdP 问题,而是登录按钮只会由启动时的环境变量生成,面板保存的配置不会创建按钮。优先把提供商配置改为容器环境变量并重启。
适用环境:Open WebUI v0.12.5(Docker 安装),主机系统 TrueNAS 25.10.7,浏览器 Firefox 159.0,OIDC 身份提供商为 Authelia,部署在 Traefik 反向代理之后,并设置了 ENABLE_OAUTH_PERSISTENT_CONFIG=true。
最快修复方案:在容器上通过环境变量配置提供商后重启容器:OAUTH_CLIENT_ID、OAUTH_CLIENT_SECRET、OPENID_PROVIDER_URL、OAUTH_PROVIDER_NAME,如需首次 SSO 登录自动建号再加 ENABLE_OAUTH_SIGNUP=true。
注意事项:该问题被维护者关闭为 #26917 的重复项,环境变量方案是“当前可用”的临时做法,面板配置不生效的问题本身尚未在此 Issue 中修复。校验框架按 Open WebUI 文档所述检查,OPENID_PROVIDER_URL 要填完整 discovery 地址;Authelia 侧登记的 redirect URI 必须是 <你的 Open WebUI 地址>/oauth/oidc/callback。开启 ENABLE_OAUTH_SIGNUP=true 会让无账号用户在首次 SSO 登录时自动建号,请确认这符合你的访问控制要求。
问题场景
用户在 Docker 中运行 Open WebUI,在“设置 → Authentication”中开启 OAuth / OIDC,并保存了指向 Authelia 的提供商(discovery URL、Client ID/Secret、redirect URI 均已填好),同时设置 ENABLE_OAUTH_PERSISTENT_CONFIG=true。但打开未登录状态的登录页时,页面只有邮箱密码表单,没有任何 SSO 登录按钮;该现象跨多个 Open WebUI 版本持续存在。
报错原文
issue: OAuth login button not shown on sign-in page
原因分析
维护者确认这是已知问题,已在 #26917 跟踪:自 0.10.0 起,管理面板中保存的 OAuth / OIDC 设置会被存储并在面板中回显,但登录页的 OAuth 按钮只在启动时根据环境变量构建。因此即使设置了 ENABLE_OAUTH_PERSISTENT_CONFIG=true 并重启,面板保存的值也不会生成按钮。上报者已验证容器内 curl -v <idp>/.well-known/openid-configuration 返回 200、TLS 证书校验通过、discovery JSON 有效,且日志中只有 admin config 接口返回 200、从未触发 OAuth 请求或回调,这与“按钮根本不存在”一致,可基本排除网络、DNS、证书和浏览器缓存因素。
环境排查
- 确认 Open WebUI 版本(本例 v0.12.5)与安装方式(Docker)。
- 确认是否只在管理面板中配置了提供商,而未在容器启动参数中设置 OAuth / OIDC 环境变量。
- 确认容器重启后环境变量确实注入(本例中重启容器未解决问题,说明改动只在面板中进行)。
- 确认
ENABLE_OAUTH_PERSISTENT_CONFIG=true是否已设置,但注意该变量本身不足以让面板配置生成登录按钮。 - 确认 IdP 侧已为客户端登记 redirect URI,并与
<你的 Open WebUI 地址>/oauth/oidc/callback一致。 - 如需排查网络层,可在容器内用
curl -v访问 discovery 地址,核对返回码、证书与 issuer、支持的 scope 和authorization_code。
解决步骤
- 不再依赖管理面板中保存的提供商配置来生成登录按钮(该路径当前不生效)。
- 在启动 Open WebUI 容器时加入以下环境变量(值替换为你自己的):
OAUTH_CLIENT_ID=<your client id> OAUTH_CLIENT_SECRET=<your client secret> OPENID_PROVIDER_URL=https://<authelia>/.well-known/openid-configuration OAUTH_PROVIDER_NAME=Authelia ENABLE_OAUTH_SIGNUP=true - 在 Authelia 客户端配置中把 redirect URI 登记为
<your open webui url>/oauth/oidc/callback。 - 重启容器,使环境变量在启动时生效。
- 打开未登录的登录页,确认已出现 Authelia 的 SSO 登录按钮。
验证方法
以未登录状态打开登录页,应能看到 OAUTH_PROVIDER_NAME 对应的登录按钮;点击后能正常跳转到 Authelia 的授权页,并在回调后完成登录。若仍只有邮箱密码表单,说明环境变量未生效,需检查容器启动配置与重启结果,并关注 #26917 的后续修复。
参考来源
相关跟踪 Issue:open-webui/open-webui #26917
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Bug]: GLM-5.x (DSA) under pipeline parallelism: reuse layers at a stage start read stale top-k indices](https://www.chat-gpts.plus/wp-content/uploads/2026/11/63170-1a708cbf-768x403.jpg)
![issue: [regression] [dev] Channel message actions are reached by Tab only after the message box, cut off from their message](https://www.chat-gpts.plus/wp-content/uploads/2026/11/33552-42971eeb-768x403.jpg)
