Coder Social home page Coder Social logo

eryajf / go-ldap-admin Goto Github PK

View Code? Open in Web Editor NEW
1.3K 19.0 227.0 753 KB

🌉 基于Go+Vue实现的openLDAP后台管理项目

Home Page: http://ldapdoc.eryajf.net

License: Apache License 2.0

Makefile 0.14% Go 99.45% Dockerfile 0.42%
go golang jwt admin casbin element-ui gin go-admin gorm gin-vue-admin

go-ldap-admin's Introduction

Go Ldap Admin

Auth Go Version Gin Version Gorm Version GitHub Pull Requests HitCount GitHub license Commits

🌉 基于Go+Vue实现的openLDAP后台管理项目 🌉


Project logo

目录

ℹ️ 项目简介

go-ldap-admin旨在为OpenLDAP服务端提供一个简单易用,清晰美观的现代化管理后台。

在完成针对OpenLDAP的管理能力之下,支持对钉钉企业微信飞书的集成,用户可以选择手动或者自动同步组织架构以及员工信息到平台中,让go-ldap-admin项目成为打通企业 IM 与企业内网应用之间的桥梁。

🏊 在线体验

提供在线体验地址如下:

分类 地址 用户名 密码
go-ldap-admin http://demo-go-ldap-admin.eryajf.net admin 123456
phpLdapAdmin http://demo-go-ldap-admin.eryajf.net:8091/ cn=admin,dc=eryajf,dc=net 123456

在线环境可能不稳,如果遇到访问异常,或者数据错乱,请联系我进行修复。

页面功能概览:

登录页 首页
用户管理 分组管理
字段关系管理 菜单管理
接口管理 操作日志

👨‍💻 项目地址

分类 GitHub Gitee
后端 https://github.com/eryajf/go-ldap-admin.git https://gitee.com/eryajf-world/go-ldap-admin.git
前端 https://github.com/eryajf/go-ldap-admin-ui.git https://gitee.com/eryajf-world/go-ldap-admin-ui.git

🔗 文档快链

项目相关介绍,使用,最佳实践等相关内容,都会在官方文档呈现,如有疑问,请先阅读官方文档,以下列举以下常用快链。

如果你在安装部署时遇到问题,可通过付费服务寻求专业支持。

🥰 感谢

感谢如下优秀的项目,没有这些项目,不可能会有 go-ldap-admin:

🤗 另外

  • 如果觉得项目不错,麻烦动动小手点个 ⭐️star⭐️!
  • 如果你还有其他想法或者需求,欢迎在 issue 中交流!

🤑 捐赠

如果你觉得这个项目对你有帮助,你可以请作者喝杯咖啡 ☕️ 点我

📝 使用登记

如果你所在公司使用了该项目,烦请在这里留下脚印,感谢支持 🥳 点我

💎 优秀软件推荐

🤝 贡献者

eryajf
二丫讲梵
xinyuandd
Xinyuandd
RoninZc
Ronin_Zc
wang-xiaowu
Xiaowu
huxiangquan
Null
0x0034
0x0034
Pepperpotato
Null
Foustdg
YD-SUN
ckyoung123421
Ckyoung123421

go-ldap-admin's People

Contributors

0x0034 avatar ckyoung123421 avatar eryajf avatar foustdg avatar huxiangquan avatar pepperpotato avatar roninzc avatar wang-xiaowu avatar xinyuandd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-ldap-admin's Issues

🚀 希望能增加账号使用期限

您使用的场景? | 1. Your usage scenarios?

中小企业

您期望的结果是怎样的? | 2. What is your expected outcome?

希望能增加账号使用期限

🐛 一些问题。。。 | [Bug] 新建用户部门显示不正常

您使用的版本? | Your usage version?

v0.5.3

docker镜像:
eryajf/go-ldap-admin-server:2022-08-06_03-23
eryajf/go-ldap-admin-ui:2022-07-28_08-35

您使用的场景? | Your usage scenarios?

在k8s中部署

您做了什么操作? | What did you do?

在”用户管理“页面,新建用户

您遇到了什么问题? | What are your problems?

新建用户的部门显示不正常,部门出现了两次,但对该用户点击编辑再保存后就正常了。

您期望的结果是怎样的? | What is your expected outcome?

Snipaste_2022-08-22_16-06-32
Snipaste_2022-08-22_16-06-14

请见截图,”ops_dev"变成了“ops+devops_dev"

同步飞书部门失败

最新版本 使用thrid_tools校验飞书配置没问题,能看到部门人员 ,但是web同步的时候返回sql 错误
image
我没理解错误的话,应该是点击同步飞书部门会把全部飞书的部门创建出来?

🐛 修改邮箱的一个BUG

最新版本 人员管理 -> 用户管理,修改用户信息,当修改用户信息提交返回失败后,再次点击修改用户信息,无法编辑字段,任何输入都不响应。

🐛 飞书没有获取最顶级的成员

您使用的版本? | Your usage version?

最新版本

您使用的场景? | Your usage scenarios?

飞书同步用户

您做了什么操作? | What did you do?

点击同步用户。

您遇到了什么问题? | What are your problems?

顶级部门的用户没有同步。

您期望的结果是怎样的? | What is your expected outcome?

希望进行同步。

docker 下 同步失败

msg: "获取企业微信部门列表失败:41001: access_token missing, hint: [1657521269365203040793615], from ip: 113.110.228.213, more info at https://open.work.weixin.qq.com/devtool/query?e=41001"

image

如何将现有用户数据(excel、sql等形式的数据)导入到该项目中?

感谢楼主提供的这么好的项目,已经疯狂star。这两天已经做了和公司业务的联调测试,拟在近期部署~~~
但目前还不清楚如何初始化用户库,前端没见到有批量导入的功能。直接在mysql的user表中导入用户数据可以吗?

您使用的场景? | 1. Your usage scenarios?

公司用户库初始化

您期望的结果是怎样的? | 2. What is your expected outcome?

将现有用户数据(excel、sql等形式的数据)导入到该项目中

目前公司还没有使用ldap,所有没有现成的ldap服务可以用,我直接用了本项目中docker-compose的openldap服务。

🙋 JWT认证失败, 错误码: 401, 错误信息: 密码错误

Question Report

请在提交问题之前回答这些问题,谢谢。 | Please answer these questions before submitting them. Thank you.

你使用了哪个版本? | Which version did you use?

k8s 部署,镜像:docker.mirrors.sjtug.sjtu.edu.cn/eryajf/go-ldap-admin-server 和 peytonyip/go-ldap-admin-ui
后端配置文件关于 jwt 配置 部分没有改动,前端按照 修改配置 把 Dockerfile 里面相关的部分改为了对应的域名,重新构建了镜像

预期行为 | Expected behavior

正常登录

实际行为 | Actual behavior

无法登录,后端日志显示:JWT认证失败, 错误码: 401, 错误信息: 密码错误

ps:顺便想问下,jwt key 部分是否可以自定义?

🐛 测试project

您使用的版本? | Your usage version?

v0.1.0

您使用的场景? | Your usage scenarios?

测试

您做了什么操作? | What did you do?

测试

您遇到了什么问题? | What are your problems?

您期望的结果是怎样的? | What is your expected outcome?

🚀 建议支持主从同步功能

您使用的场景? | 1. Your usage scenarios?

目前是 go-ldap-admin可以同步ldap 数据,使用场景是,主ldap 同步到 go-ldap-admin,go-ldap-admin同步到从ldap,从ldap可多台

您期望的结果是怎样的? | 2. What is your expected outcome?

建议支持主从同步功能

🚀 员工信息部门发生改变同不到goldapadmin平台

您使用的场景? | 1. Your usage scenarios?

员工的信息发生改变,比如员工号或者职务发生改变。

您期望的结果是怎样的? | 2. What is your expected outcome?

员工的信息发生改变,比如员工号或者职务发生改变,能够同步到goldapadmin平台以及后面的ldap

平台提供兼容已经在运行ldap的能力

大多数公司ldap已经在运行中,不太可能因为接入这个平台,把全部数据重建一遍。
希望平台能够集成一键将原来ldap数据同步到MySQL的能力,这样就能无缝对接到在运行的ldap了。

新增或者修改时,数据添加的时机问题

这里的核心逻辑应该是,如果添加人员或者分组,应该:

  1. 先往MySQL添加
  2. 再往ldap中添加

如果1失败,则不会执行2,如果2失败,则前台提醒用户,添加到ldap失败,可通过前端提供按钮,手动将MySQL中该条数据同步到ldap作为补偿。

总的来说核心宗旨为:MySQL与ldap中数据必须强一致!

🙋 JWT认证失败, 错误码: 401, 错误信息: 密码错误

你使用了哪个版本? | Which version did you use?

使用docker部署的
使用镜像:
docker.mirrors.sjtug.sjtu.edu.cn/eryajf/go-ldap-admin-server:latest

刚部署好的环境
admin账号无法登录
日志中提示:
`2022-08-11 18:06:13 DEBUG middleware/AuthMiddleware.go:113 github.com/eryajf/go-ldap-admin/middleware.unauthorized JWT认证失败, 错误码: 401, 错误信息: 密码错误

`
image
image

user和group分别添加dn字段

目的:

  • 为了让管理后台更加直观呈现ldap的原始数据信息。
  • 也为了简化在代码逻辑交互中的一些操作。

go-ldap-admin-server 服务启动报错了 启动不起来 前端无法登录

go-ldap-admin-server 服务启动报错了 启动不起来 前端无法登录
[INFO wait] Host [mysql:3306] is now available!
[INFO wait] --------------------------------------------------------
[INFO wait] Checking availability of host [ openldap:389]
[INFO wait] Host [ openldap:389] is now available!
[INFO wait] --------------------------------------------------------
[INFO wait] docker-compose-wait - Everything's fine, the application can now start!
[INFO wait] --------------------------------------------------------
panic: Unsupported CPU, maybe it's too old to run Sonic.

goroutine 1 [running]:
github.com/bytedance/sonic/internal/native.init.0()
/go/pkg/mod/github.com/bytedance/[email protected]/internal/native/dispatch_amd64.go:144 +0x1fb

🥳谁在使用 go-ldap-admin

使用了 go-ldap-admin 的公司,烦请您在 Issue 留下以下信息,非常感谢您的支持!

格式示例

  • 地点:北京
  • 组织:xxx公司
  • 官网:xxxxx.com
  • 场景:用户,分组管理,钉钉自动同步
  • 展示Logo图片:(如果未提供Logo,我们将从官网截图展示)

您的公司信息将在项目官网进行展示:http://ldapdoc.eryajf.net

提升用户密码校验强度

您使用的场景? | 1. Your usage scenarios?

企业用户统一管理

您期望的结果是怎样的? | 2. What is your expected outcome?

用户密码校验包含一下几点:

  • 长度不小于 8 位
  • 包含字母大小写
  • 包含常见特殊字符

支持AD密码自助修改功能

当前企业都是使用AD域进行统一账户管理,密码策略为90天修改一次。希望能通过一个平台自助修改用户密码。

您使用的场景? | 1. Your usage scenarios?

您期望的结果是怎样的? | 2. What is your expected outcome?

通过平台修改AD域账户密码,支持网页修改 或脱机更新同步(在家办公场景)

🚀 动态关联企业IM与系统的字段

您使用的场景? | 1. Your usage scenarios?

企业IM与平台字段对应的问题,目前代码当中是硬编码的形式。

您期望的结果是怎样的? | 2. What is your expected outcome?

支持动态关联维护字段关系。

🙋 问题交流。企业微信同步不到手机号,邮箱,目前看文档从2022年6月20日之后不能这样获取信息

Question Report

企业微信同步问题,求问有解决办法吗

你使用了哪个版本? | Which version did you use?

当前时间的latest docker-compose启动的

预期行为 | Expected behavior

获取到企业微信用户的所有信息

实际行为 | Actual behavior

只获取到了简单的信息

企业微信20221111-170410

原因分析(如果可以) | Cause analysis (if possible)

官方限制... 从2022年6月20号20点开始,除通讯录同步以外的基础应用(如客户联系、微信客服、会话存档、日程等),以及新创建的自建应用与代开发应用,调用该接口时,不再返回以下字段:头像、性别、手机、邮箱、企业邮箱、员工个人二维码、地址,应用需要通过oauth2手工授权的方式获取管理员与员工本人授权的字段。

问题重现步骤 | Steps to reproduce the problem

nope

钉钉同步遇到的二个问题

钉钉同步遇到的二个问题
问题1 、 钉钉组织架构部门有几级的,目前只同步到一级部门
image

问题2、 用户同步不全(2千多用户,只同步到207用户)
image

后台重置密码功能无效

重置密码后登录不上,试了好多次,无意中发现是后台重置密码无效,无论修改为什么,都不行。

PS: 用户自己登录到go-ldap-admin前台页面的话,修改密码是没有问题的

图片

🐛 docker-compose部署在公有云服务器,远程访问ui验证错误 | [Bug]

您使用的版本? | Your usage version?

lastest

您使用的场景? | Your usage scenarios?

测试

您做了什么操作? | What did you do?

docker-compose部署,远端访问

您遇到了什么问题? | What are your problems?

非本机访问ui, ajax Post请求ip:ports, 报错
Uploading image.png…

您期望的结果是怎样的? | What is your expected outcome?

前端ui可以配置 ip ,允许远端直接通过Ip:ports 访问测试。或者给出nginx配置代码

🙋 LDAP 初始化连接问题

请问作者 ,下面这种写法不会导致 连接超时/丢失 的问题吗

public/common/ldap.go

	err = ldap.Bind(config.Conf.Ldap.AdminDN, config.Conf.Ldap.AdminPass)
	if err != nil {
		Log.Panicf("绑定admin账号异常: %v", err)
		panic(fmt.Errorf("绑定admin账号异常: %v", err))
	}

	// 全局LDAP赋值
	LDAP = ldap

🙋 添加部门失败

你好 麻烦问下我在配置文件中配置了正确的key和secret,开始同步钉钉部门,网络请求返回失败,返回信息看到有部门名称 哪里设置不对呢
我的字段关联关系:
image
image
错误截图:
image

🐛 编辑用户失败

您使用的版本? | Your usage version?

docker-compose部署的

您遇到了什么问题? | What are your problems?

1.编辑用户时弹出提示“更新用户失败在LDAP更新用户失败:LDAP Result Code 32 "No Such Object" 。未更新成功

2.新增用户时弹出提示“添加用户失败AddUser向LDAP创建用户失败:LDAP Result Code 32 "No Such Object":" 。 新增成功了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.