大家好
我在工作中需要维护一个 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)
有疑问加站长微信联系(非本文作者))