jumpserver 工单系统 二次开发工单管理并开源代码
介绍
JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计,满足等保合规要求。
产品特色
- 开源:零门槛,线上快速获取和安装;
- 分布式:轻松支持大规模并发访问;
- 无插件:仅需浏览器,极致的 Web Terminal 使用体验;
- 多云支持:一套系统,同时管理不同云上面的资产;
- 云端存储:审计录像云端存储,永不丢失;
- 多租户:一套系统,多个子公司和部门同时使用;
- 多应用支持:数据库,Windows 远程应用,Kubernetes。
背景
- 我们公司的windows资产,以前都是让大家连接8年前的一个商用的跳板机奇治。老旧,数据混乱
- 并且存在一个1.4.10的jumpserver。然后权限也非常的混乱。
- 大家连接数据库查询数据,都是用一台共用的一台windows,然后从这台windows用数据库客户端链接。并且每一个人还拥有很多的数据库账号。数据库侧 那边开通了各种账号。
- 反正就是特别的混乱
- 并且没有任何的审计,然后上次出现了一个事故,线上的数据被删除清空了。最后是从备份恢复了数据。但是也缺少了点数据。幸好数据不是特别的重要
- 之后领导就想整理这一块的东西
计划
- 重新搭建新版jumpserver,替换老的jumpserver,以及商用的奇治跳板机
- 以后windows linux资产都要通过新版的jumpserver登陆
- 数据库需要从jumpserver登陆,权限细分到单库上面
设计
- 无非就是在新版的jumpserver给用户新建各种服务器以及数据库的权限
- 并且数据库,需要去数据库里面新建各种人的账号,但是这样的话跟之前一样了。不方便管理
- 所谓有了规矩,规则的话。那么整个事情就变的 好维护,以及好管理了
服务器权限设计
- 服务器权限的话 就分两种,app和root。
- 一个普通用户的一个超级用户的
- 每一个用户从jumpserver创建一个 资产授权。后期这个用户也好管理
数据库权限设计
- 我设计的是给数据库那边新建一个根据用户名的账号,后面我们用这个账号给授权不同的权限。
- 然后我们给每一个人创建一个 资产授权。方便后期管理。
- 那么就会表现成 数据库有一个jump_db_fanlichun_r的数据库账号
- 然后给这个jump_db_fanlichun_r用户授权,比如查询,修改,等等
- 最后我们给这个用户创建一个 资产授权。名称也是jump_db_fanlichun_r。
问题反思
- 如果都是人工操作的话,不免麻烦,服务器还好。但是数据库就比较麻烦,因为涉及到给数据库账号授权。那么你就得登陆数据库,然后授权。
- 那么能不能直接弄一个自动化的形式,不需要人工干预。
- 我在网上搜了,jumpserver确实有工单系统。但是这个是企业版的,我就是一个小打小闹的,企业版的要1年小几万。那肯定是不可能的,除非你们公司是大公司,对于jumpserver工单系统比较依赖
- 而且很多公司 都是自己的工单系统
- 最后我就准备自己写一个工单管理系统
展示




开源代码介绍
- 是在jumpserver(v3.10.9)上面二次开发出了一个简单的工单申请
- 用户可以申请服务器和mysql库的权限
- mysql 权限可以细分到库表
- 自动创建授权,不用人为干预
软件架构
- 我这个是基于jumpserver v3.10.9 开发的。
- 大家可以试试别的版本,基本上只涉及到几个接口
- 只要这几个接口不变,我这个简单版的工单申请 就可以运行的
- 只需要在你的版本代码上面 新增几个接口就行
- 然后前端新增页面就行
代码接口介绍
# 我新增的接口主要有以下几个 # 都是在这个文件里面
jumpserver-ticket/jumpserver-v3.10.9/apps/perms/urls/user_permission.py # 具体接口 # 自己新增的 工单申请
# 这个接口是获取全部的资产的
path('mytickets/getassets/', api.mytickets.get_all_node), # 这个是创建申请服务器的工单接口
path('mytickets/apply/', api.perm_apply.perm_application), # 这个是创建申请mysql数据库权限的接口
path('mytickets/applydb/', api.perm_apply.perm_application_db), # 这个是查看自己的工单申请接口
path('mytickets/myapplication/', api.mytickets.my_application), # 这个是管理员查看并审批 用户申请的接口
path('mytickets/myapproval/', api.mytickets.my_myapproval), # 对接工单系统 # 这两个接口是因为 我们本身就有工单系统平台。
# 然后我给我们的开发专门写的两个接口 # 这个是创建服务器权限的接口
path('mytickets/createauthnodes/', api.mytickets.create_auth_nodes),
# 这个是创建mysql数据库权限的接口
path('mytickets/createauthmysql/', api.mytickets.create_auth_mysqls),
安装教程
- 从官网下载代码,修改代码(下载我的代码)
- 先编译core代码,docker build -f Dockerfile-ce -t jumpserver/mycore-ce-v3-2:v3.10.9 . 最终会编译出一个镜像
- 编译lina前端代码,yarn build。 最终会编译出一个lina目录
# 进入docker compose文件夹
cd /opt/jumpserver-installer-v3.10.8/compose # 批量替换core镜像
sed -i "s/mycore-ce-v3-1/mycore-ce-v3-2/g" *
cd .. # 停止服务
./jmsctl.sh stop # 启动服务
./jmsctl.sh start
# 因为前端打包出来的是一个lina文件夹
# 所以你可以再写一个dockerfile,以原始的lina镜像为基础,把这个文件给编译进去 # 我采用了一种比较最简单的方式 直接把文件复制进去,然后重启nginx
# 但是缺点就是容器重启了 那么你修改的lina代码就没有了,得再复制一遍
# 方式有很多种,看你采用哪种都行 docker cp lina 7309df137aff:/tmp/lina
docker exec -it 7309df137aff bash
rm -rf lina
mv /tmp/lina . nginx -t
nginx -s reload
修改配置
- 下载我的代码
- 修改连接数据库的账号密码,你得有数据库账号,并且权限是。或者你用root账号也行
- 你在全局文件里搜 db_user 的行,然后把用户名密码 改成你有权限的用户
- 然后需要修改调用你本身jumpserver接口的 token。因为我没有完全去读和jumpserver的 代码,所以我这就是取巧。直接在代码里面调用接口全局文件搜索 admin_token 的行。然后把token替换成的你token。
- 具体怎么获取token,查看jumpserver官方文档,要选择private_token的方式。jumpserver官方文档创建token
- 然后再按照我上面的安装步骤 就可以了
开源地址
https://gitee.com/ccsang/jumpserver-ticket
结语
jumpserver 工单系统 二次开发工单管理并开源代码的更多相关文章
- Epicor系统二次开发
Epicor系统二次开发 一.获取或修改界面EpiDataView的字段数据(Get EpiDataView data) C# EpiDataView edv = (EpiDataView)oTran ...
- (dede)织梦系统二次开发笔记
(dede)织梦系统二次开发记录 --soulsjie 一.模板常用文件说明 模板文件都在文件夹templets下,我们以默认模板(default)为例,对模板文件结构进行分析: 首页模板文件目录 \ ...
- EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码
背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...
- 2017.2.28 activiti实战--第六章--任务表单(二)外置表单
学习资料:<Activiti实战> 第六章 任务表单(二)外置表单 6.3 外置表单 考虑到动态表单的缺点(见上节),外置表单使用的更多. 外置表单的特点: 页面的原样显示 字段值的自动填 ...
- 最新升级优化 shopee|美客多 Mercadolibre|shopfiy|lazada|独立货代贴单系统 可规模化的贴单打单系统 源码下载独立部署
七想网络 跨境猴 最新优化改进版本的 虾皮代打包-虾皮代贴单 独立部署源码版本货代贴单系统 介绍: 台湾海外仓_shopee货代_虾皮物流–虾皮代贴单 虾皮代打包-虾皮代贴单-虾皮货代平台 shope ...
- Ecshop系统二次开发教程及流程演示
来源:互联网 作者:佚名 时间:03-01 16:05:31 [大 中 小] Ecshop想必大家不会觉得陌生吧,大部分的B2C独立网店系统都用的是Ecshop系统,很受用户的喜爱,但是由于Ecs ...
- IBOS云办公系统二次开发之功能介绍(PHP技术)
IBOS自动化办公系统是我见到的功能.架构最好的开源自动化办公系统,功能与企业需求吻合度之高.架构之灵活,让我不得不将之介绍给大家,让跟多需要学习PHP开发的朋友来了解她,拥抱她! 如果您还没有很好的 ...
- EasyNVR网页Chrome无插件播放摄像机视频功能二次开发之云台控制接口示例代码
随着多媒体技术和网络通信技术的迅速发展,视频监控技术在电力系统.电信行业.工业监控.工地.城市交通.水利系统.社区安防等领域得到越来越广泛的应用.摄像头直播视频监控通过网络直接连接,可达到的世界任何角 ...
- python-Django监控系统二次开发Nagios
1.Nagios安装 yum install -y nagios.i686 yum install -y nagios-plugins-all.i686 安装完后会在apache的配置文件目录下/et ...
- NX二次开发-UFUN单按钮模态对话框窗口打印uc1601用法
NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); //方法1(uc1601) uc1601();// ...
随机推荐
- EF Core – Library use EF
前言 写 Library 有时候会用到 database, 会想用 EF 来维护. 比如 Identity, IdentityServer, OpenIddict, 这些 Library 都有使用到 ...
- 强!推荐一款Python开源自动化脚本工具:AutoKey!
1.前言 在数字化时代,自动化工具成为了提升工作效率和生产力的重要手段.Python作为一种广泛使用的编程语言,以其强大的功能和易用性受到许多开发者的青睐. 而今天给大家推荐一款开源的自动化脚本工具: ...
- 全面掌握 Jest:从零开始的测试指南(上篇)
随着JavaScript在前后端开发中的广泛应用,测试已成为保证代码质量的关键环节. 为什么需要单元测试 在我们的开发过程中,经常需要定义一些算法函数,例如将接口返回的数据转换成UI组件所需的格式.为 ...
- Session——基本使用
Session Session 原理 Session 使用细节
- dfs 验证搜索二叉树——leetcode98
代码来自leetcode官方 一开始我自己写这个代码时只注意当前节点是否会存在空指针,并没有注意到他的孩子节点也有可能为空,绕了我好久...... /** * Definition for a bin ...
- 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年6月刊
本文为大家整理了墨天轮数据社区2023年6月发布的优质技术文章/文档,主题涵盖Oracle.MySQL.PostgreSQL等数据库的安装配置.故障处理.性能优化等日常实践操作,以及常用脚本.注意事项 ...
- python实现链表(单链,双链)
# code:utf-8 # createTime:2023.8.17 # -------------------------------------------------------------- ...
- Js数组&高阶函数
数组也是一种复合数据类型,在数组可以存储多个不同类型的数据 数组中存储的是有序的数据,数组中的每个数据都有一个唯一的索引可以通过索引来操作获取数据 数组中存储的数据叫做元素 任何类型的值都可以成为数组 ...
- Web渗透04_密码破解
账号密码是任何一个系统都必备的要素. 弱密码 123456 654321 112233 admin 等等 默认密码 Tomcat控制台: tomcat/tomcat 明文传输 http的明文传输,可以 ...
- AtCoder Beginner Contest 375 C题 (python解)
Panasonic Programming Contest 2024(AtCoder Beginner Contest 375)C - Spiral Rotation(python解)** 原题链接: ...