Micro-Net-Hub --- 基于 go-ldap-admin 边学边练的二开项目

xianleeti · · 538 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

大家好 我在工作中需要维护一个 LDAP, 在寻找图形管理界面的时候,发现了”二丫“ 的 ”go-ldap-admin” 项目。 ![go-ldap-admin](https://static.golangjob.cn/240702/164a0a26f5dc5bdf6c373850e8a4374d.png) 试用了一下之后,觉得这几乎就是我梦中情项目。 基于项目上的需求,也为了顺便 学习gin+vue,就有了我自己的这个二开项目:[Micro Net Hub](https://github.com/bagechashu/micro-net-hub) --- ### ![micro-net-hub logo](https://static.golangjob.cn/240702/822bca8a71c1932d983a1191332e91f8.png) 我画的 Logo,见笑啦🐶 项目大概逻辑结构 ![micro-net-hub arch](https://static.golangjob.cn/240702/ac3c0306df2166479a81ff924be02c25.png) --- ### 还在使用的 LDAP 虽然现在 OAUTH2/SSO 等新的概念和相关项目已经很多了,但是LDAP 作为一个老资历的协议,市面上大部分开源工具都还是支持使用 LDAP 进行身份验证。 本着能用就不升级的理念,LDAP 可能在运维圈子里边还是很流行。 我们项目当前就还在使用 LDAP 进行身份验证, 下边这些都是: - Gitlab - Nexus - harbor - 运维平台 - VPN账户管理后台 本来没想着搞什么管理后台,但是因为有段时间项目上的人员变动较频繁,创建账号/禁用账号 一度搞的我快麻了。 就心一横,连续搞了快半年,基本上实现了如下功能: - LDAP 账户管理(继承 go-ldap-admin 的逻辑, 后台可以和 openLDAP 双向同步(已测试)。 也可以同步钉钉、微信、飞书的组织架构(未测试)) - 内网 DNS - 内网导航及管理 - Radius Auth服务--TOTP 验证 (用于使用Radius协议进行认证的服务。我主要用于开源 VPN Server (如 Ocserv, Anylink)的认证 ) --- ### 如何体验 [项目代码 https://github.com/bagechashu/micro-net-hub](https://github.com/bagechashu/micro-net-hub) 为了练习英文,文档几乎是用Chinglish 硬写的, 将就的看哇。 开发的过程中,大佬同事建议我搞一个能快速启动的 docker-compose 配置。所以体验 Micro-Net-Hub 项目还是很容易的。 ``` git clone https://github.com/bagechashu/micro-net-hub.git cd micro-net-hub/docs/docker-compose/all-in-one docker compose up -d ``` 希望您能顺利启动环境。 `doc` 目录下的 `README` 还记录了其他的方法,方便您根据实际情况快速启动。 也搞了个 `makefile` , 写了一些常用的调试和构建命令。 如果有缘,碰巧您有类似需求,可以捣鼓下我这个项目, 遇到问题可以直接提 issue,不追求格式。 如果真的有需要,可能会留个联系方式啥的。 --- ### 遗憾不足 入门的编码水平,代码有很多问题。 虽然已经大改几次,除过我没发现的 bug, 还有非常不 Professional 的代码。 如果有幸, 您捣鼓了一下这个项目,发现了 bug,或者有更优雅的实现方式, 期待您的反馈和建议。 欢迎正反方面的评价。 --- ### 感谢 感谢 ChatGPT, 通义灵码, 科技改变生活,你是那从未嫌过我傻的老师。 感谢 参考项目的作者,因为你们的项目,我才有了抄的地方: ``` https://github.com/eryajf/go-ldap-admin https://github.com/gnimli/go-web-mini https://github.com/LyricTian/gin-admin https://github.com/go-admin-team/go-admin https://github.com/m-vinc/go-ldap-pool https://github.com/bjdgyc/anylink https://github.com/fivexl/golang-radius-server-ldap-with-mfa https://github.com/lework/lenav https://github.com/kenshinx/godns https://github.com/snail2sky/coredns_mysql_extend.git ``` 直接大段拷贝的代码, 在 `NOTICE` 中,登记了 License 相关说明。 --- ### 文末留几张跑起来后的页面截图 #### 首页导航 ![首页网址导航](https://static.golangjob.cn/240702/4e58f98100fc3293b78977d762897a3f.png) #### 导航管理 ![导航管理](https://static.golangjob.cn/240702/c04cb8bd827be97cb7601a5f5e2f0756.png) #### 用户管理 ![用户管理](https://static.golangjob.cn/240702/60b460ba29114cdb2113c696c0237eef.png) #### 组管理 ![组管理](https://static.golangjob.cn/240702/7f422eab7bda16219aac7e64ac252858.png) #### 侧边导航栏 ![侧边导航栏](https://static.golangjob.cn/240702/278de3a9a84d488c0589f097e09fe2f7.png)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

538 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传