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认证登录,也可以使用本地登录。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决