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

287 阅读3分钟

大家好 我在工作中需要维护一个 LDAP, 在寻找图形管理界面的时候,发现了”二丫“ 的 ”go-ldap-admin” 项目。go-ldap-admin

试用了一下之后,觉得这几乎就是我梦中情项目啊。

基于项目上的需求,也为了顺便 学习gin+vue,就有了我自己的这个二开项目:Micro Net Hub


micro-net-hub logo我画的 Logo,见笑啦🐶

项目大概逻辑结构

micro-net-hub arch


还在使用的 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

为了练习英文,文档几乎是用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

默认账户密码 (修改默认账户密码参考)

micro-net-hub web admin username: admin
micro-net-hub web admin password: admin_pass

phpldapadmin username: cn=admin,dc=example,dc=com
phpldapadmin password: admin_pass

希望您能顺利启动环境。

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 相关说明。


文末留几张跑起来后的页面截图

首页导航

首页网址导航

导航管理

导航管理

用户管理

用户管理

组管理

组管理

侧边导航栏

侧边导航栏