OpenWebUI單點登錄:官方文檔:https://docs.openwebui.com/features/sso
此單點登錄方案使用的是Trusted Header方案,意思就是在登錄的時候,header里面要帶上X-User-Email,X-User-Name,自動單點登錄。
Docker啟動命令
docker run -d -p 3001:8080 -e WEBUI_AUTH_TRUSTED_EMAIL_HEADER=X-User-Email -e WEBUI_AUTH_TRUSTED_NAME_HEADER=X-User-Name -v open-webui1:/app/backend/data --name open-webui-1 ghcr.io/open-webui/open-webui:main
nginx配置內容
server { listen 80; server_name owl.tyl.com; # 配置訪問日志 access_log C:/nginx-1.26.2/logs/owl.tyl.com.access.log; location / { set $email ""; set $name ""; if ($arg_email) { set $email $arg_email; } if ($arg_name) { set $name $arg_name; } proxy_pass http://127.0.0.1:3001; # 后端服務地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 添加自定義請求頭 proxy_set_header X-User-Email "dufan@z.com"; proxy_set_header X-User-Name "dufan"; # 添加自定義請求頭 #proxy_set_header X-User-Email $email; #proxy_set_header X-User-Name $name; } }
是否必須使用HOST我還需要再測試測試,畢竟后面有個警告內容 HOST 127.0.0.1
坑1:
文檔第一段這個結構讓我誤以為只有OAuth2需要配置這個參數,沒想到是個全局參數。

坑2:自動生成賬戶
ENABLE_OAUTH_SIGNUP - if true, allows accounts to be created when logging in with OAuth.
讓我誤以為,只要配置了這個參數之后,X-User-Name對應的賬號會自動創建,沒想到還是要手動創建,見坑3.
坑3:第一個賬號默認為管理員,其余賬號需要手動創建
使用quick start方式啟動成功之后,第一次訪問127.0.0.1:3000會要求創建一個管理員賬戶,使用Trusted Header方式會將該第一個賬戶設置為管理員(待與坑4一起驗證)
坑4:不能一上來就用Trusted Header模式啟動服務,必須先使用普通的quick start模式啟動服務之后,創建好管理員賬戶,否則后續缺少管理員。
但是管理員賬戶又不能使用密碼登錄,怎么辦呢,管理員賬號也只能通過Trusted Header的模式代理登錄。登錄管理員之后再創建其他用戶或者其他管理員賬戶。(待和坑3一起驗證)
坑5:配置了Trused Header模式之后,ldap登錄方式和本地登錄模式都會失效。
方案2
配置LDAP統一密碼登錄,配置之后既可以使用ldap認證登錄,也可以使用本地登錄。

浙公網安備 33010602011771號