最近根据自己的过往经验,开源了轻量级的统一身份认证系统 JumpSSO,支持 OIDC 和 SAML2 协议客户端(阿里云、腾讯云、Gitlab、Jenkins 等常用服务)接入,同时也支持将飞书、钉钉、企微、飞牛作登录身份源,适合解决企业内部各类系统不同账户间的登录态问题。
先贴一下开源仓库地址:https://github.com/Flex-7746/JumpSSO
有任何问题或需求欢迎讨论,我会在力所能及的范围内解决和实现。
部署
项目支持三种部署方式:
在这里分享一下飞牛部署,其他两项大家有兴趣可以前往了解一下。
飞牛部署 JumpSSO ,我提交了审核,暂时不确定什么时候上架,所以可以先直接在 Releases 中下载飞牛 fpk 包进行安装即可,支持 x86 和 arm,安装后稍等一段时间通过 17746 端口即可访问。
安装参数
安装时,将填写相关信息:
| 参数名 |
说明 |
| 外部服务链接 |
可选,外部服务实际地址,可无后缀,http 默认 80,https 默认 443,默认 http://localhost:17746 |
| 本地服务端口 |
必选,本地部署的端口地址,访问时可内网 ip:端口 进行访问 |
| Redis 配置 |
可选,使用 Redis 进行缓存,示例【username:password@host:port/database】、【:password@host:port/database】 |
| MySQL 配置 |
可选,使用 MySQL 进行存储,示例【username:password@host:port/database】 |
对于外部服务地址,一般情况下使用 https 反向代理,这里就需要填写对应的反向代理地址,用于客户端进行访问。
不过对于 nas 使用,可以不配置 Redis 和 MySQL,直接使用本地文件,客户端配置时使用 ip:端口 访问即可。

数据存储
安装完成后,在【文件管理】-【应用文件】-【jumpsso】中有2个文件夹:
| 参数名 |
说明 |
| runtime |
系统运行的缓存目录,存储了本地存储、本地缓存、上传图片、初始配置等运行时的文件,映射后,重置 docker 服务也不会丢失数据 |
| public |
部署后静态资源文件,主要用于企微域名验证,假设部署为 a.com,public 下的 1.jpg 可 a.com/1.jpg 访问 |
卸载重装不影响数据存储,初始密码存储在 【文件管理】-【应用文件】-【jumpsso/runtime/config.json】文件中,请注意,如果您在操作界面修改超级管理员密码,配置文件并不会同步更新。
使用
部署后,根据你的配置地址访问,初始管理账户名为:13300001111,初始密码存储在 runtime/config.json 文件中,请注意,如果您在操作界面修改超级管理员密码,配置文件并不会同步更新。
可以查看配置日志看到信息,第一次会输出账户密码,后续将不会输出。

应用
在这里您可以创建应用,创建应用后,再创建对应入口,一个应用可创建多个入口,入口协议的 OIDC 和 SAML2 对比可自行了解,两者均是流行协议,此处简单描述一下:


下方是几个演示接入的服务,其他服务的配置方法大同小异,参考示例适当调整即可。
用户
在这里您可以查看 JumpSSO 所有的登录账户,账户类型分为:
创建时,仅可以创建内置账户,编辑时,内置账户可编辑角色和密码。


映射
在某些情况下,需要对用户的身份标识做映射,例如:
- 用户邮箱已经对外使用,但是内部系统用的是另一个名称
- 在某个应用里,多人使用一个账户
那么就可以使用映射功能,参考此文档:使用映射功能进行灵活登录
登出
你可以一键登出 JumpSSO,这样后续所有的应用在登录时就需要重新登录。
在 OIDC 和 SAML 相应的配置处均已支持。
具体的登出地址为:<你的 JumpSSO 部署地址>/sign/logout
飞牛身份源
在这里介绍一下怎么使用飞牛账户作为身份源,其他的可以参考上方说明。
应用信息
目前飞牛没有开放 OAuth,但是根据网上的资料,可以使用飞牛影视的 Client ID 和 Client Secret,都是这个信息:
- Client ID:U1G8OGDF3Y
- Client Secret:02815b2463ab4ceb97148df4e688b7d5
此方法虽然可用,但是可能随时会被封堵,后续待飞牛更新后,可以替换成本应用的信息
如果你的登录流程有问题,可以获取本机的,ssh 进机器然后 sudo 为 root 用户后,操作为以下命令,:
psql -U postgres -d trim
SELECT * FROM oauth_app;
\q # 退出 psql

配置
进入 JumpSSO 配置页面中,进入飞牛配置项,打开启用,填入你的飞牛部署地址、Client ID 和 Client Secret;
存储用户数据建议开启,可在用户中查看信息。

点击保存后即可进行飞牛授权登录

若无需账户密码登录,则可在【配置】-【账户】中,关闭启用,则仅支持飞牛登录

其他
飞牛的返回的信息比较少,只有 uid 和名称,所以如果你要用飞牛作为身份源,请选择使用 __NAME__ 或 __NICKNAME__ 作为用户标识
其他
上述文档从仓库文档搬运过来,可能哪里会有格式问题,欢迎反馈,对于文档内容的话仓库更详细,欢迎前往阅读。
如果解决了你的问题,希望能给个小心心 Star 一下。